![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode学习笔记
Amandayyt
最开心的事情就是每天吃好,玩好,睡好,美美哒,程序无bug
展开
-
Roman to Integer
今天做的习题是Roman to Integer的LeetCode,比较简单,重点是转换规则要用好,其他就没有什么了。但做完题之后还是不太明白为什么要用这个算法。思路为:1:将字符串转换为字符数组2:对字符数组的每一个符号进行判断如果大于前一个符号则加上如果小于则加上后一个符号并且减去两倍的此符号原创 2017-02-16 15:56:49 · 277 阅读 · 0 评论 -
SameTree解法思路及源代码
今天做的是LeetCode100,判断两棵二叉树是否相等。在写完自己的代码之后和大神代码进行比对,发现这个问题的解决手法都是差不多的一开始想找有没有简便算法比如先判断结构再判断值可是发现无论用哪一种都需要递归到最底层,那还不如在递归的时候完成值是否相等的判断所以得到以下代码:public class Solution { public boolean isSameTree原创 2017-02-24 08:31:08 · 269 阅读 · 0 评论 -
Search Insert Position三种方法解析
今天做的是LeetCode35,寻找给定元素在数组中的位置,如果没有此元素的话给出插入的位置基本解法很简单: public int searchInsert(int[] nums, int target) { for(int i=0;i<nums.length;i++){ if(nums[i]==target||nums[i]>target) retur原创 2017-02-23 15:21:26 · 878 阅读 · 0 评论 -
Palindrome Number
Palindrome Number问题的基本解决和对几种优秀方法的理解与比较原创 2017-02-15 09:35:55 · 328 阅读 · 0 评论 -
Reverse Integer
解决LeetCode的思路和最终的代码,以及在查阅其他大神代码之后得出的一些总结原创 2017-02-14 16:59:15 · 250 阅读 · 0 评论 -
Implement strStr()基本方法和反向思维和优质解法解析
今天做的是LeetCode27。题目要求是找到字符串中子字符串第一次出现的序号,当未找到时返回-1基本思路就是一个个字符进行比对一开始想的是从第一个字符开始一直向后代码如下: public int strStr(String haystack, String needle) { if((haystack.length()==0)&&(needle.length()==0))原创 2017-02-23 08:42:05 · 367 阅读 · 0 评论 -
Remove Element针对删除元素多和少的两种情况解析
今天做的LeetCode27还是蛮简单的,但是收获很大。此题的目的就是在序列中删除指定值。可以这么办从头开始遍历数组用count计数:记录这个元素在数组中出现的次数每个元素依次向前挪动这些个单位但感觉这个方法太笨了,转换思路,得到以下解法用两个指针,一个负责遍历全部元素,另一个指向当前符合要求的元素,得到如下代码:int removeElement(vector原创 2017-02-22 18:39:57 · 299 阅读 · 0 评论 -
Remove Duplicates from Sorted Array基本处理方法和集中优质解法解析
今天做了LeetCode的习题26,题目的目的是将排好序的序列中的重复元素去掉。这道题的目的就是在排好序的数组中删除重复元素。判断元素是否重复不会太难,因为数组是排好序的,难的是如何对重复元素进行操作。最简单的思路就是每发现一个重复元素就将后面的元素全部前移,但这对于长的数据来说是一种灾难。一定要找到更简单的方法解决此问题。还要注意约束条件是只能使用线性空间解决此问题,其他想到的一原创 2017-02-22 10:11:21 · 371 阅读 · 0 评论 -
Plus One思路解析和源代码
题目的意思就是用数组存储了一个数字。当这个数字加1的仍然用数组存储正确的结果。如果最后一位小于8,则直接将最后一个数组元素加1如果最后一位大于8.需要进行如下操作:最后一位变成0,前面一位加1一直循环,直到有一位是不用进位的。 public int[] plusOne(int[] digits) { if(digits[digits.length-1]<9){原创 2017-03-02 09:55:10 · 475 阅读 · 0 评论 -
Merge Two Sorted Lists
做了LeetCode21 ,题目的目的是归并两个已经排好序的链表。思考了一下,解题思路如下:本题的目的就是将两个排好序的列表重新排序为一个列表有一点像归并排序的归并阶段用C++的指针速度应该是比较快的首先,分别用两个指针指向两个链表的首部之后比较,将较小值放入新链表中,并且此指针后移,直到有一个指针指向空,之后把非空指针指向的元素及其后面元素全部加到结果链表中基本代原创 2017-02-21 19:50:09 · 277 阅读 · 0 评论 -
Length of Last Word思路解析和各种方法介绍
今天做的是LeetCode58.目的是找到字符串中的最后一个单词的长度如果最后为一个空格,说明不存在,或者字符串本身就是空的 ,也会返回0但有一点是以前没有注意到的,如果字符串是被一堆空格组成的,返回的也是空格的个数所以思路整理如下:如果最后一个为空格或者长度为0,返回0否则从后向前遍历,返回到空格之前的长度但后来发现是有问题的,如"a ",虽然是第一个字符串,原创 2017-02-28 19:33:17 · 797 阅读 · 0 评论 -
Valid Parentheses基本方法和几种优质解法解析
今天所做的习题是LeetCode20,Valid Parentheses,有很大的收获。第一个想到的就是利用栈先从左到右遍历字符串,找到所有的左部放到栈中,再从右到左遍历字符串,找到所有的右部放到栈中,之后开始进行匹配发现不匹配立刻返回FALSE到一方空了之后如果另一方也空了就返回TRUE否则返回FALSE后来发现这种思路是不对的,因为:([[]()原创 2017-02-19 09:17:09 · 1872 阅读 · 0 评论 -
Longest Common Prefix
今天做的是LeetCode习题10,寻找最长的前缀。用的是最一般的方法,很好理解,但是方法比较笨。具体思路就是先获取字符串数组中每一个字符串的长度,找到最小值。用一个嵌套循环,找到相同的前缀,完成任务。代码如下: public String longestCommonPrefix(String[] strs) { if(strs.length==0) return null;原创 2017-02-17 14:59:35 · 257 阅读 · 0 评论 -
Max Subarray思路解析及源代码
if(nums.length==0) return 0; int max=Integer.MIN_VALUE; int maxnow=max; for(int i=0;i<nums.length;i++){ maxnow=nums[i]; for(int j=i+1;j<nums.length;j++){ if(maxnow<maxnow+nums原创 2017-02-25 09:46:41 · 575 阅读 · 0 评论