
leetcode
说说互联网的那些事
毕业于中山大学,从事互联网电商多年,有着丰富的经验,平时擅长总结互联网技术,分享大厂的面试经验,微信公众号:说说互联网的那些事
展开
-
39. Combination Sum
一·、题意:给一个数据集C,和一个目标数字T,用数据集C中的数字组合成和为T,求能组合成和为T的数字集合。其中C中的数字可以重复使用无限次。二、举例:给一个数据集C{2, 3, 6, 7},一个目标数字T为7求得的结果为:[ [7], [2, 2, 3]]三、算法的思路:利用一个递归和一个循环来实现双重循环四、代码如下:package chen1原创 2016-07-25 22:47:24 · 195 阅读 · 0 评论 -
258. Add Digits
一、给一个数num,将num的各位数相加,但得到的是一位数时,就返回,当不是一位数时,相加得到的数的各位数继续相加,一直到得到一位数为止二、思路:有如下关系:num = a * 10000 + b * 1000 + c * 100 + d * 10 + e即:num = (a + b + c + d + e) + (a * 9999 + b * 999 + c * 99 + d原创 2016-07-27 00:18:07 · 165 阅读 · 0 评论 -
104. Maximum Depth of Binary Tree
一、题意求树的深度二、思路通过深度遍历来求数的最大深度三、代码 static int maxDep; public static int maxDepth(TreeNode root) { maxDep=0; calculateDepth(root, 0); return maxDep; } pub原创 2016-07-28 00:37:01 · 186 阅读 · 0 评论 -
292. Nim Game
大概题意:A和B两个人一起玩游戏,游戏规则是有n个石头,A和B依次取石头,最后去完石头的那个人赢。其中,每人每次只能取1个或者2个或者3个石头,A是第一个取石头,现在有n个石头,如果A能够赢得话返回true,否则返回false。实现的代码如下:public static boolean canWinNim(int n) { if(n%4==0) return false;原创 2016-07-19 23:45:22 · 255 阅读 · 0 评论 -
371. Sum of Two Integers
题意:实现两个数相加,但是不是用+或者-代码实现:int sum=a; int carry=b; while(carry!=0){ int temp=sum^carry; carry=(sum&carry) sum=temp; } return sum;解题思路:不用加号,那只能用&或者^原创 2016-07-20 00:13:33 · 295 阅读 · 0 评论