摘要: lc273 Integer to English Words 分析英文的计数规则,1000一个循环,thousand,million,billion,trillion,所以我们可以每1000处理一次,后面加上相应的thousand或是million… 然后再看1000以内规则: hundred一档, 阅读全文
posted @ 2019-06-05 06:57 南山南北秋悲 阅读(145) 评论(0) 推荐(0)
摘要: lc12 Integer to Roman 因为题目输入只有1~3999,只需要将所有情况列出即可 阅读全文
posted @ 2019-06-04 10:00 南山南北秋悲 阅读(169) 评论(0) 推荐(0)
摘要: lc1071 Greatest Common Divisor of Strings 找两个字符串的最长公共子串 假设:str1.length > str2.length 因为是公共子串,所以str2一定可以和str1前面一部分匹配上,否则不存在公共子串。 所以我们比较str2和str1的0~str2 阅读全文
posted @ 2019-06-04 09:54 南山南北秋悲 阅读(573) 评论(0) 推荐(0)
摘要: lc6 ZigZag Conversion 分成两步, 第一步垂直向下, 1 1 1 1 第二步倾斜向上 1 1 1 1 1 1 1 用nRows个StringBuilder 然后将他们合并即可 阅读全文
posted @ 2019-06-03 13:26 南山南北秋悲 阅读(151) 评论(0) 推荐(0)
摘要: lc13 Roman to Integer 遇到那六种特殊情况分别-2,-20,-200, 按照罗马数字的规则,每种只可能出现一次。所以只需要考虑一次,用indexOf()即可判断是否出现这几种特殊情况 然后遍历s,按照每个字符的定义,加上value即可 阅读全文
posted @ 2019-06-03 12:39 南山南北秋悲 阅读(117) 评论(0) 推荐(0)
摘要: lc171 Excel Sheet Column Number 可以从高位往低位走,例如:”ACANV”从A->V 也可以从低位往高位走: V->A 第一种解法: for(int i=0; i<s.length(); i++) 每次迭代时,res 先*26 再加s[i]-‘A’+1 第二种解法 i= 阅读全文
posted @ 2019-06-03 12:24 南山南北秋悲 阅读(112) 评论(0) 推荐(0)
摘要: lc168 Excel Sheet Column Title 有点像进制转换 1~26 : A~Z 27~52(26*1 + 1~26) : AA~AZ 53~81 (26*2 + 1~26): BA~BZ 26*26 + 1~26 : ZA~ZZ (26^2*1 + 26*1 + 1~16): A 阅读全文
posted @ 2019-06-03 12:08 南山南北秋悲 阅读(134) 评论(0) 推荐(0)
摘要: lc316 Remove Duplicate Letters 我们用一个栈来保存最终的返回结果, 现在来看看什么时候能删除一个元素,bcabc走到a的时候发现c大于a而且a后还有c,所以可以删除 由此可见,当array[i]之前的字母较大,且在i之后还有重复的字母,就能删除 如何实现这个逻辑呢? 1 阅读全文
posted @ 2019-06-03 11:56 南山南北秋悲 阅读(412) 评论(0) 推荐(0)
摘要: 一个prev保存前一个状态,一个cur保存这次的状态每次按题意操作prev,然后赋值给cur 如何按题意操作呢? 1 11 21 1211 111221 一个变量say保存到目前为止相同的值,直到say和prev[i]不同,就给cur插入say的个数,和say的值,然后更新say为prev[i] 阅读全文
posted @ 2019-06-03 11:36 南山南北秋悲 阅读(177) 评论(0) 推荐(0)
摘要: lc179 Largest Number 主要考comparator的重写,思路很简单 将int[]转成String[],然后排降序 排好之后依次放入结果字符串即可 如何排序?按什么规则呢? 先看几个例子 "9" "987" -> "9987" > "9879" "123" "213" -> "12 阅读全文
posted @ 2019-06-01 11:40 南山南北秋悲 阅读(220) 评论(0) 推荐(0)