
经典算法题
David_GodV
无畏艰辛,永不止步,不积跬步无以至千里,不积小流无以成江海。
展开
-
经典算法-给出2n+1个数,其中有2n个数出现过两次,用简便的最方法求出现一次的数
给出2n+1个数,其中有2n个数出现过两次,用简便的最方法求出现一次的数思路分析:列如给定一个数组 array1 [5,2,4,3,5,2,4,10,3] 想要通过最简单的方式那就是异或了,我们都知道0异或 任何数都是那个数的本身,任何数与自身异或都是0,按照本题的要求,我们可以这样简单的分析 假设n与非自身n的任何数异或,比如n 异或了 m,x,y最后异或到了n,那么最终的结果为m,原创 2016-08-04 20:40:04 · 3281 阅读 · 0 评论 -
经典算法-字符串转化为整数
经典算法题-把字符串转化为整数值思路分析首先判断字符串是否为空,返回0考虑前面的是否是空格,使用trim()去掉,然后判断长度是否为0,是的话,返回0判断第一个字符是不是+和-,设置变量sign记录循环取得字符串的数字,考虑字符串中有非数字,遇到就退出,保留前面的数字考虑溢出的情况,溢出返回Integer的最大值或最小值代码如下:public class Solution { p翻译 2016-08-02 09:00:48 · 4700 阅读 · 2 评论 -
经典算法-统计0~n之间的数字二进制的1的个数
经典算法-统计0~n之间的数字二进制的1的个数题目描述: 给定一个数字n,统计0~n之间的数字二进制的1的个数,并用数字输出例子: 当n = 5 时 返回的结果应该是:[0,1,1,2,1,2]要求: 算法复杂度o (n)空间复杂度o (n)思路分析: 根据题目的要求,时间和空间复杂度,明显是要用动态规划的方法 得出推到公式:f(n) = 不大于f(n)的最大的2的次方+f(翻译 2016-08-02 13:09:23 · 3257 阅读 · 0 评论