leetcode
ajsdfkjasdfasdif
这个作者很懒,什么都没留下…
展开
-
LeetCode 744 Find Smallest Letter Greater Than Target
扫描 public char nextGreatestLetter(char[] letters, char target) { //1.大于等于所有字母先处理 if(target>=letters[letters.length-1]) return letters[0]; for(int i=0;i<letters.length;i++){原创 2018-01-24 19:07:58 · 177 阅读 · 0 评论 -
LeetCode 483 Smallest Good Base
定义: good base:当n在k进制下的数每一位都是1,则称k是n的good base 需求:找出n的最小good base 思路:二分查找 给一个n,n∈[3,10^18] n-1一定是n的good base good base 越小位数越多例如:13 goodbase 有12,3 12进制下是11 3进制下是111 //伪代码 num输入的数字 ans记录goodbase,初原创 2018-01-26 12:19:38 · 301 阅读 · 0 评论 -
LeetCode 172 Factorial Trailing Zeroes
题目要求:找出阶乘n,尾巴0的个数 0就是10的次幂,10只有两个质因子2和5 阶乘中每个乘数的2因子出现的次数一定多于5因子出现的次数 所以决定末尾0个数的就是5因子的个数 public int trailingZeroes(int n) { int count=0; //125 125/5 = 25 5^1倍数 有25个 //25/5 = 5原创 2018-01-25 18:20:55 · 190 阅读 · 0 评论 -
LeetCode 233 Number of Digit One
题目要求: 查找出小于等于n的非负数中出现1的个数 找到的规律: 1. 9999…9999 n个9 中1的个数为countn9 = n*pow(10,n-1) 2. x9999…9999 n个9 中1的个数为countxn9 = (x+1)*n*pow(10,n-1) + pow(10,n) 3. 1241343210000000000—-124134321x99999999原创 2018-01-25 17:58:52 · 320 阅读 · 0 评论 -
LeetCode 29 Divide Two Integers
Created with Raphaël 2.1.0开始遍历[0,31],查看b是否为2的次幂确认?返回ans=a<<log b结束二分查找区间[a>>(x+1),2>>(x)]是否有mid经过计算等于a返回mid返回ryesnoyesnoimport java.math.BigInteger; import java.util.ArrayList; import java.util.List;pu原创 2018-02-01 15:51:51 · 270 阅读 · 0 评论 -
LeetCode 372 Super Pow
/* * x>=0&&x<=10 别人的思路 */ public int myPow(int a,int x){ //a^x%m = (a%m)^x%m //(a%m*a%m*a%m)%m if(x==0) return 1; int ans = 1; for(int i=0;i<x;i++)原创 2018-01-25 13:33:54 · 163 阅读 · 0 评论 -
LeetCode 50 Pow(x, n)
递归分解成子问题解决:class Solution { public double myPow(double x, int n) { if(n==0) return 1; if(n>0){ if(n%2==0) return myPow(x*x,n/2); else原创 2018-01-24 22:44:58 · 164 阅读 · 0 评论 -
LeetCode 69 Sqrt(x)
public int mySqrt(int x) { // method1直接调用api这个方法太强 // return (int)Math.sqrt((double)x); // method2,最大整数的根,然后二分查找 // int MAX = 2147483647; sqrt(MAX) = 46340 int max_mid = 46340;原创 2018-01-24 21:52:38 · 151 阅读 · 0 评论 -
LeetCode 08 String to Integer (atoi)
充分考虑输入字符串的特殊性: 1. 空字符串 2. 全非数字的字符串 3. 前半段数字后半段非数字字符串 4. 前半段非数字后半段数字 5. 合法数字 6. 前后有空格的合法数字 7. 越界的数字int类型的界限[-2147483648,2147483647] 这是一个很重要的条件用于判断输入数字是否越界 处理步骤: 空字符串先处理 把头尾空格去掉 处理符号位 计算 判断越界 clas原创 2018-01-24 16:39:23 · 148 阅读 · 0 评论 -
LeetCode 65 Valid Number
注意字符串的特殊性: 1. 前后带空格 2. 空字符串 3. 带有非数字的字符串带有非数字的字符串 可以带正负号例如:+3,-3,不可以+-3, 可以有点例如:1.3,.3,3., 不可以.,前后至少一个整数,一个数里面只能有一个点 可以有e例如1e3,不可以1e,e3,前后必须有数,前面可以小数,后面必须整数,后面的整数可以带符号,一个数字里面只能有一个e 出现其他非数字字符全是不合法原创 2018-01-24 21:26:46 · 175 阅读 · 0 评论 -
LeetCode 174 Dungeon Game
题目给的条件 1. 二维网格m*n 行列 //m=1 n=1 2. P右下角 3. k左上角 4. k可以向右和向下移动 5. 遇怪掉血 6. 遇药加血 7. 血量<=0骑士会死要求:求出救到公主的最小血量 骑士的健康没有上限 每个房子有怪物或者血瓶 第一个想法:深度优先搜索遍历,从p开始假设救到公主只剩1滴血, 开始搜索,遇到怪加血,遇到血瓶把血原创 2018-01-26 15:02:50 · 302 阅读 · 0 评论