算法
code4now
wx号:code4now,欢迎一起讨论技术问题
展开
-
7. Reverse Integer
public class Solution { public int reverse(int x) { long ans = 0; while(x != 0){ ans = ans * 10 + x%10; x = x /10; } if( ans Integer.MAX_VA原创 2017-07-30 00:26:54 · 206 阅读 · 0 评论 -
198. House Robber
public class Solution { public static int[] result; public int solve(int idx,int[] nums){ if(idx < 0){ return 0; } if(result[idx] >=0 ){ return原创 2017-08-17 23:03:38 · 267 阅读 · 0 评论 -
378. Kth Smallest Element in a Sorted Matrix
public class Solution { public boolean guess(int g,int[][] matrix, int k, int n){ int sum = 0; for(int i = 0; i < n; i++){ int L = 0; int R = n-1;原创 2017-08-05 23:26:27 · 220 阅读 · 0 评论 -
100. Same Tree
public class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p == null && q == null) return true; if(p!= null && q !=null && p.val == q.val){ re原创 2017-08-13 16:44:51 · 244 阅读 · 0 评论 -
101. Symmetric Tree
1.100题的变形/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class S原创 2017-08-13 16:51:43 · 238 阅读 · 0 评论 -
144. Binary Tree Preorder Traversal
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution {原创 2017-08-13 18:18:38 · 239 阅读 · 0 评论 -
94. Binary Tree Inorder Traversal
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution {原创 2017-08-13 18:22:54 · 257 阅读 · 0 评论 -
322. Coin Change
class Solution { public int coinChange(int[] coins, int amount) { int max = amount + 1; // 最小的币值为1,就算全部用1,硬币个数也不会超过amount + 1 int d[] = new int[amount+1]; Ar原创 2017-08-20 21:07:45 · 275 阅读 · 0 评论 -
50. Pow(x, n)
1.换底公式public class Solution { public double myPow(double x, int n) { int sign = 1; if( x < 0 && n % 2 == 1){ sign = -1; } x = Math.abs(x); ret原创 2017-08-06 17:40:55 · 527 阅读 · 0 评论 -
112. Path Sum
1.递归搜索树/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Sol原创 2017-08-07 09:37:56 · 259 阅读 · 0 评论 -
124. Binary Tree Maximum Path Sum
1.定义maxDeep(x)为以x为根节点的树的max path maxDeep(x)等于在下面a,b,c中找到一个最大的值,c的话是因为左子树的max path 和 右子树的max path可能值为负 a.左子树的max path + x自身的值 b.右子树的max path + x自身的值 c.x自身的值/** * Definition for原创 2017-08-07 11:25:22 · 262 阅读 · 0 评论 -
69. Sqrt(x)
1.二分法解题,最恶心的就是边界问题,为了边界问题基本上都得调试一段时间 注意,当 x 为 int 时,相乘会越界(大于int的最大数2147483647) ,所以用 相除 代替 相乘public class Solution { public int mySqrt(int x) { if(x<=1) return x; int left =原创 2017-08-03 09:42:14 · 256 阅读 · 0 评论 -
202. Happy Number
1.题目说的是对任意一个正整数,不断各个数位上数字的平方和,若最终收敛为1,则该数字为happy number,否则程序可能从某个数开始陷入循环。这里我们使用一个HashSet表存储已经出现过的数字,如果下次还出现,则返回false。public class Solution { public boolean isHappy(int n) { Set set = n原创 2017-08-02 09:53:10 · 209 阅读 · 0 评论 -
8. String to Integer (atoi)
public class Solution { public int myAtoi(String str) { Boolean negativeFlag = false; Boolean positiveFlag = false; int st = 0; long ans = 0; long max = 214原创 2017-07-30 12:13:56 · 229 阅读 · 0 评论 -
231. Power of Two
方法1:递归public class Solution { public boolean isPowerOfTwo(int n) { if(n <= 0) return false; if(n == 1) return true; if(n>=2 && n%2== 0) return isPowerOfTwo(n/原创 2017-07-30 13:59:30 · 181 阅读 · 0 评论 -
326. Power of Three
1.递归public class Solution { public boolean isPowerOfThree(int n) { if(n<=0) return false; if(n == 1) return true; if(n >= 3 && (n % 3) == 0 ) return isPowerO原创 2017-07-30 14:20:40 · 193 阅读 · 0 评论 -
191. Number of 1 Bits
1.输入是无符号证书,供32位,结合两个步骤 a.向右移1位 b.当前数与 1 按位与,得到当前数的末位数字是0还是1public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int ans = 0;原创 2017-07-30 14:41:39 · 183 阅读 · 0 评论 -
190. Reverse Bits
public class Solution { // you need treat n as an unsigned value public int reverseBits(int n) { int ans = 0; for(int i = 1;i<= 32; i++){ ans = (ans << 1) | (n & 1)原创 2017-07-30 15:16:29 · 183 阅读 · 0 评论 -
172. Factorial Trailing Zeroes
1. n! = n * (n-1) * (n-2) * ... * 5 * 4 * 3 * 2 * 1,求尾数0的个数,问题转换为“n阶乘尾数的个数” 等于 “1到n中,凑出的 2 * 5的对数” ---- (1)在1到n的自然数中,是2的倍数的自然数肯定比是5的倍数的自然数的个数多,比如当 n = 7 是,1 2 3 4 5 6 7相乘,其中 2 4 6 都是2 的倍数的自原创 2017-07-30 21:43:16 · 224 阅读 · 0 评论 -
258. Add Digits
1.传统方法public class Solution { public int addDigits(int num) { int ans = 0; if(num<10) return num; ans = getNextSum(num); while(ans >=10){ ans = getNex原创 2017-07-30 23:15:06 · 210 阅读 · 0 评论 -
268. Missing Number
1.原数列origin_array 的和 减去 少了一个数字的数列sub_array的和,注意原数列是0 1 2 3 - - - n的n+1个数字,比少了一个数字的数列的长度多1。public class Solution { public int missingNumber(int[] nums) { int sub_length = nums.原创 2017-07-31 15:27:49 · 226 阅读 · 0 评论 -
public class Solution { public int countPrimes(int n) { boolean[] isDelArray = new boolean[n];
1.注意边界条件public class Solution { public int countPrimes(int n) { boolean[] isDelArray = new boolean[n]; if (n <= 2) return 0; isDelArray[2] = false; for (int i = 3; i < n; i++) { if (原创 2017-07-31 21:33:50 · 2922 阅读 · 0 评论 -
292. Nim Game
1.此类问题为一类问题,记住即可,若1次最多可取k个(k在问题中是看作常量),记f(n)代表自己先拿,总共有n块石头时,自己是必输还是必胜。 当 n % (k+1) == 0 时,代表自己必胜比如 k = 4 时,代表一次性可拿 1块,2块,3块,4块石头,而f(1)代表桌上总共有1块石头可拿,自己先拿的情况下,是必输还是必胜? 可以知道,f(1),桌上石头只有1块,而自己可原创 2017-08-01 16:38:09 · 207 阅读 · 0 评论 -
207. Course Schedule
class Solution { public boolean canFinish(int numCourses, int[][] prerequisites) { // 初始化邻接表 List posts = new ArrayList(); for (int i = 0; i < numCourses; i++){原创 2017-09-22 10:52:31 · 278 阅读 · 0 评论