LeetCode
LupinTheThird-
越努力,越幸运
展开
-
[LeetCode]字符串转换整数
这道题的坑是真的多,艰难的改了好几遍才符合要求记录一下几个坑:1.非数字字符除了字母外还有'.'之类的,要考虑到2.会存在“+-2”这样的案例,应该返回0的3.会存在“ +0 123”这样的案例,应该返回0的 4.会出现“0-1”这样的例子,应该返回0问题链接:https://leetcode-cn.com/explore/interview/card/top-i...原创 2018-12-04 18:34:08 · 110 阅读 · 0 评论 -
[LeetCode]字符串中的第一个唯一字符
本来想用HashMap做查找的,结果看了看高票答案发现用Map好像多此一举了[[[[为了不浪费还是把代码贴上来了问题链接:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/5/strings/34/HashMap代码: public int firstUniqChar(Stri...原创 2018-12-03 22:13:00 · 133 阅读 · 0 评论 -
[LeetCode]最小栈
本题的重点应该就是当栈当前的最小元素被pop的时候如何获得倒数第二小的元素,我用了两个栈来完成这个操作。s1是原栈,当有一个元素被push的时候,让他与当前最小的元素进行比较,如果push的元素小的话,则更新最小元素,且将该元素存放位置的下标保存在s2中,也就是说s2中保存的是历次的最小。当pop的时候,如果pop的元素是栈中最小的元素,则将s2的栈顶元素也一起pop。问题链接:https:/...原创 2018-12-10 17:45:26 · 113 阅读 · 0 评论 -
[LeetCode]计数质数
通过这道题回顾了一下素数表是怎么打的,不过从这题真的可以看出循环变量如何改变真的对运算速度改变蛮大的,可以接受数字之后再打素数表,不然时间太浪费了。问题链接:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/25/math/61/代码: public int countPrim...原创 2018-12-10 20:34:25 · 136 阅读 · 0 评论 -
[LeetCode]3的幂
这题的两个坑应该就是小于等于0的用例了,注意规避还是可以的。问题链接:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/25/math/62/代码: public boolean isPowerOfThree(int n) { if(n<=0){ ...原创 2018-12-10 21:27:56 · 128 阅读 · 0 评论 -
[LeetCode]宝石与石头
这个问题比较简单,重点就在提升速度上,我选择的是外层循环遍历不重复的J,内层遍历重复的S问题链接:https://leetcode-cn.com/problems/jewels-and-stones/代码: public int numJewelsInStones(String J, String S) { int count = 0; for(...原创 2018-12-11 10:50:21 · 121 阅读 · 0 评论 -
[LeetCode]保持城市天际线
这个问题思路很简单主要是提升效率,把水平天际线和垂直的天际线放到一个循环里面去求值,这样可以省下一个O(n*n)的时间,然后求增加总量的时候,同样只用一个循环。问题链接:https://leetcode-cn.com/problems/max-increase-to-keep-city-skyline/代码: public int maxIncreaseKeepingSkyli...原创 2018-12-11 13:14:16 · 245 阅读 · 1 评论 -
[LeetCode]独特的电子邮件地址
本体用了正则和非正则两种方式,结果来说非正则快一点,用set去重都是一样的。这里吐槽一下LeetCode有些通过代码明显是错误的,还是测试用例不完善的锅啊。问题链接:https://leetcode-cn.com/problems/unique-email-addresses/代码:(正则) public int numUniqueEmails(String[] emails)...原创 2018-12-11 14:57:42 · 998 阅读 · 0 评论 -
[LeetCode]最大二叉树
刚健朴实的递归,不过要注意递归跳出的条件和递归进入的条件,不然很容易死循环然后爆栈或者越界。问题链接:https://leetcode-cn.com/problems/maximum-binary-tree/代码: public TreeNode constructMaximumBinaryTree(int[] nums) { return BinaryTree...原创 2018-12-11 18:05:40 · 156 阅读 · 0 评论 -
[LeetCode]螺旋矩阵 II
很经典的题目,以前看ACM的书的时候对这道题目印象颇深。问题链接:https://leetcode-cn.com/problems/spiral-matrix-ii/代码: public int[][] generateMatrix(int n) { int[][] array = new int[n][n]; int i = 0; ...原创 2018-12-11 19:30:01 · 165 阅读 · 0 评论 -
[LeetCode]整数反转
刚开始想弄一个flag区分正数和负数的,后来发现没这个必要,res的符号始终和原数是一样的。然后用java中Integer类中有MIN_VALUE和MAX_VALUE,用这两个常量来做判断会比较好。处理溢出的时候不要用res*10要用MIN_VALUE/10,防止溢出问题链接:https://leetcode-cn.com/explore/interview/card/top-intervie...原创 2018-12-03 20:00:14 · 93 阅读 · 0 评论 -
[LeetCode]反转字符串
将字符串包装为StringBuilder对象,再调用该对象的reverse方法即可反转问题链接:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/5/strings/32/代码: public String reverseString(String s) { S...原创 2018-12-03 17:41:52 · 127 阅读 · 0 评论 -
[LeetCode]移动零
用冒泡改了一下就直接过了,看了一下高分解答应该是要计算零的数目然后把零元素的当前索引用后面的相应元素替换,然后把最后几位置零,这样做比较快问题链接:https://leetcode-cn.com/problems/move-zeroes/description/ 代码: public void moveZeroes(int[] nums) { int len...原创 2018-12-02 21:42:22 · 76 阅读 · 0 评论 -
[LeetCode]两数之和
这个问题的思想很有趣,把遍历两个数暴力解转换为只要找一个数是否存在就好了,在网上搜了下解答都说用hashMap做,刚开始以为HashMap里面,如果插入的时候键重复了的话,新的会把老的替换掉,所以用容易重复的nums[i]做键是不合理的,后来自己写了一个有重复的测试用例,发现正常运行,仔细想了一下如果有重复了的话,HashMap中是新的键值对,遍历'第一个数’的时候,首先取到的永远是老的那个'键值...原创 2018-12-02 21:48:01 · 111 阅读 · 0 评论 -
[LeetCode]买卖股票的最佳时机II
没想到是简单粗暴的用贪心算法,我真是太年轻了。问题连接:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/22/代码: public int maxProfit(int[] prices) { int len=prices.length; ...原创 2018-12-02 21:50:10 · 112 阅读 · 0 评论 -
[LeetCode]有效的数独
没想到简单粗暴的遍历还可以超过95%的提交,惊讶把验证行和验证列写到一起了,减少点循环用一个同样的二维数组存储第i行的数字占用情况写的时候居然突然搞混了break和continue的用法,有辱师门啊[[[[问题链接:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/30...原创 2018-12-02 21:53:41 · 133 阅读 · 0 评论 -
[Leetcode]删除排序数组中的重复项[第一次]
居然只超过这么点人,看来很需要优化接下来放代码class Solution { public int removeDuplicates(int[] nums) { int result=nums.length; for(int i=0;i+1<result;i++){ nums=delete(nums,i,resu...原创 2018-11-30 21:06:38 · 98 阅读 · 0 评论 -
[LeetCode]存在重复
这题本来是想另外用一个数组来存储,新数组的下标代表老数组的值,这样新数组一旦有数据大于等于2了,代表原数组有重复,结果发现这样的话遇到负数就没办法了,后来想到把所有的数都加上一个特定的值,让负数变成整数进行存放应该也可以,结果后面的测试用例竟然有好几百万的,那就没办法了 后来查询资料,发现java中的set可以去重,但是网上的Arrays.asList方法只能针对字符串数组,整型数组会报错...原创 2018-12-01 14:00:08 · 109 阅读 · 0 评论 -
[LeetCode]只出现一次的数字
查到了异或运算的新用法,两个相同数字异或运算的结果为0,0和任何数字异或运算的结果均为原数字。所以该问题只要遍历走完一遍就可以了问题链接:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/25/下面放代码 public int singleNumber(i...原创 2018-12-01 14:57:03 · 82 阅读 · 0 评论 -
[LeetCode]加一
这个问题相对来说比较简单,主要是针对进位的处理和最高位(也就是数组第一个元素)需要进位的情况,(刚开始没有考虑到这种状况,但是根据测试用例的反馈来看,最高位如果有进位的话,需要拆成1和0)问题连接:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/27/下面放代码先直接加不...原创 2018-12-01 21:41:08 · 105 阅读 · 0 评论 -
[LeetCode]旋转图像
先沿右上到左下的对角线翻转图像,再沿着中间那行为对称轴交换元素问题链接:https://leetcode-cn.com/problems/rotate-image/description/以下是代码:public void rotate(int[][] matrix) { int len=matrix.length; //先沿对角线交换 ...原创 2018-12-03 17:39:59 · 123 阅读 · 0 评论 -
[LeetCode]179最大数
本来是做了牛客网iHandy的面试题发现的这道题,思考了很多情况最后还是倒在了最后的20%case上,结果发现评论说这题跟leetcode179差不多,就去做了一下LeetCode的这道题,不过这两个地方的测试用例有点不一样,要考虑的点也不一样。这道题的重点我觉得是自定义Comparator的编写,定义排序规则才是重点。刚开始我考虑的是就是就比较两个字符串的首数字,决定谁更加“重要”,如果...原创 2019-07-09 02:30:29 · 157 阅读 · 0 评论