博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搞定BAT------算法系列(1)
阅读量:6476 次
发布时间:2019-06-23

本文共 1542 字,大约阅读时间需要 5 分钟。

hot3.png

 

现在,我怕的并不是那艰苦严峻的生活,而是不能再学习和认识我迫切想了解的世界。对我来说,不学习,毋宁死。——罗蒙诺索夫

题目一

       给定一个字符串str,返回str的统计字符串。例如,“aaabbadddffc”的统计字符串为“a_3_b_2_a_1_d_3_f_2_c_1”。

代码

public static String getCountString(String str){        //如果str为空,返回空        if(str==null || "".equals(str)){            return "";        }        //将字符串转为字符数组        char[] chs = str.toCharArray();        //res表示统计字符串,此时只包含str的第0个字符        String res = String.valueOf(chs[0]);        //num代表当前字符的数量        int num=1;        //从str[1]位置开始,从左到右遍历str        for(int i=1;i

题目二

        给定一个字符类型数组chas[],判断chas中是否所有的字符都只出现过一次。例如,chas=['a','b','c'],返回true; chas=['1','2','1'] ,返回false。

代码

public  boolean isUnique1(char[] chas){    //如果是空字符数组,直接返回true    if(chas == null){       return true;    }    //定义一个布尔型数组map,记录每种字符的出现情况    boolean map = new boolean[256];    //遍历chas    for(int i=0;i

题目三

给定一个数组arr,返回子数组的最大累加和。例如,arr=[1,-2,3,5,-2,6,-1],在所有的子数组中,[3,5,-2,6]可以累加出最大的和12,所以返回12。

代码

pubic int maxSum(int[] arr){     if(arr==null || arr.length==0){          return 0;     }     //定义max为极小值     int max = Integer.MIN_VALUE;     //定义变量cur记录每一步的累加和     int cur=0;     //遍历arr     for(int i=0;i!=arr.length;i++){         累加         cur+=arr[i];         //获取最大值         max = Math.max(max,cur);         //当cur<0,说明累加到当前数出现了小于0的结果,那么累加的这一部分肯定不能作为产生最大累加和         //的子数组的左边部分,此时令cur=0,表示重新从下一个数开始累加。         cur = cur<0?0:cur;     }     return max;     }

 

本篇文章只是列举了三个简单的算法题,后边的算法系列我会逐渐加大题目的难度。

 

 

 

参考资料

《程序员代码面试指南》

 

=============================================================

 

 

转载于:https://my.oschina.net/wuchanghao/blog/1807045

你可能感兴趣的文章
让你甘愿等待的网页loading-夕阳下的奔跑
查看>>
ElasticSearch学习——环境搭建1
查看>>
手机号取模,字符串转长整型
查看>>
java 23种设计模式 深入理解
查看>>
jsp+javaBean+Servlet+jdbc+mysql微型网站解析
查看>>
DefaultMultipartHttpServletRequest的坑以及多文件上传CommonsMultipartResolver
查看>>
mysql函数substring_index的用法
查看>>
OpenCV利用Haar Cascades进行人脸检测
查看>>
安装MariaDB和Apache
查看>>
表单submit提交与ajax提交
查看>>
第三方或自建framework提交审核报错 ERROR ITMS-90087解决办法
查看>>
实例使用C#实现了一个在线进销存管理系统
查看>>
Excel 2016 常用的方法 --- VLOOKUP方法速摘
查看>>
mysql 处理行转列,一种野路子解决方案
查看>>
微软OneDrive使用体验
查看>>
Spring Boot教程(十)Spring Boot中使用RabbitMQ
查看>>
web应用防火墙的实现技术原理
查看>>
区块链100讲:Solidity语法难点解析及故障排查
查看>>
王石、解海龙担任深圳市慈善会首届形象大使
查看>>
并发编程之JMM
查看>>