
leetcode
文章平均质量分 53
NNnora
为了大傻子每日一更
展开
-
20. Valid Parentheses
括号匹配检测输入的一串括号是否能正确匹配我的方法 public boolean isValid(String s) { char[] charArray = s.toCharArray(); Stack<Character> stack = new Stack<>(); for (Character c : charArray) {原创 2017-12-12 14:11:07 · 211 阅读 · 0 评论 -
leetcode-13. Roman to Integer
leetcode12题的变式,罗马数字转换为阿拉伯数字题目类型:HashMap,字符串题意:Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.我的思路: 66%步骤:将字符串的各位转化为...原创 2018-08-01 23:03:19 · 417 阅读 · 0 评论 -
leetcode-14. Longest Common Prefix
题目类型:字符串题意:Write a function to find the longest common prefix string amongst an array of strings.找出一个字符串数组中所有字符串的最长共同==前缀==。字符串API:==indexOf()的用法==:返回字符中indexof(string)中字串string在父串中首次出现的...原创 2018-08-07 11:48:18 · 299 阅读 · 0 评论 -
leetcode-15. 3Sum
题意:给出一个数组,在其中找到三个数,之和为0,输出所有的解。例子:输入S = [-1, 0, 1, 2, -1, -4],输出[ [-1, 0, 1], [-1, -1, 2] ]错误尝试一:三层循环- –超时正确做法:确定一个数,再用双指针法找剩余两个数 beadt 91%数组由小到大排序遍历每一个数num,若num不等于他之前的...原创 2018-08-07 12:10:05 · 251 阅读 · 0 评论 -
leetcode-16. 3Sum Closest
类似15题和18题的结合题意:给出一个数组和一个目标值,找出数组中的饿三个数,使他们的加和最接近target,输出和。(注意不是输出解)我的思路: 数组排序外层循环找第一个数low = i + 1,high = len - 1如果sum == target, return target如果sum大于target,high–如果sum小于target,low++...原创 2018-08-07 13:50:09 · 274 阅读 · 0 评论 -
leetcode-17. Letter Combinations of a Phone Number
题目类型:字符串题意:类似电话键盘,给出一个由数字组成的字符串,输出对应字母的所有组合。例子:Input:Digit string “23”Output: [“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].我的思路:递归 22%前两个任意组合,结果再与第三个组合,结果再与第四个组合…...原创 2018-08-07 14:36:40 · 263 阅读 · 0 评论 -
leetcode-18. 4Sum
15题的变式题意:给出一个数组和目标和target,在数组中找到四个数,使他们相加之和为target我的思路: 双层循环(最优解法即为O(N^2^)) 51%, O(N^2^)类似15题,先排序,外层是两层循环,内层是两个指针找剩余两个数的和步骤: 1. 数组排序 2. 双层遍历数组nums[i]和nums[j],如果i>0且nums[i]不等于nums...原创 2018-08-07 14:56:12 · 248 阅读 · 0 评论 -
leetcode-19. Remove Nth Node From End of List
题目类型链表题意:给出一个链表和一个数字n移除链表中从后往前的第n个节点,输出新的链表。例子:Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end, the linked list becomes 1->2->...原创 2018-08-07 15:57:32 · 290 阅读 · 0 评论 -
leetcode-21. Merge Two Sorted Lists
题目类型:链表合并排序题意:合并两个升序排列的链表为一个有序链表例子:Input: 1->2->4, 1->3->4Output: 1->1->2->3->4->4我的思路:设置两个指针,分别指向两个链表的头,比较大小,将较小的一个节点加入新的list并且往前移动。循环直至某一个链表为空,将另一个剩余...原创 2018-08-07 16:28:16 · 252 阅读 · 0 评论 -
leetcode-22. Generate Parentheses
题目类型:回溯法,递归题意:给出一个整数n,表示有n组括号,输出所有正确的括号组合。例子:输入3,我的思路:回溯+递归递归一:以==剩余==未添加的左右括号数目为判断条件 50%递归函数:传递string对于这道题,第一个肯定是’(‘,接下来即可以是’(‘也可以是’)’ left:表示==剩余==左括号的数目 right:表示...原创 2018-08-07 16:58:36 · 334 阅读 · 0 评论 -
leetcode-23. Merge k Sorted Lists
题目类型:链表、分治、归并21题的变式题意:合并k个已排序的链表解法一:暴力–错误复杂度O(k^2^ * N) 类似两个链表的合并,第一个节点全部对比,小的取出,指针后移,再比较。。。。解法二:暴力遍历k个链表,将节点全部添加至集合,对集合排序。解法三:分治–归并排序 复杂度O(kNlogN)两个链表排序四个链表8个...原创 2018-08-07 17:42:55 · 298 阅读 · 0 评论 -
12. Integer to Roman
题目类型:HashMap,字符串 beat:87%题意:Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.罗马数字的写法:处的一个点。 绘制n条垂直线,使得线i的两个端点处于(i,ai)和(i,0)处。 找到两条线,它们与x轴一起形成一个容器,使得容器包含最多的水。分析:即:有n个点,横坐标为0->n-1,纵坐标为a~i~,找到两个点,使得他们向x轴做垂线,变成一个一边长一边短的杯子,使得短垂线*...原创 2018-07-26 22:06:57 · 236 阅读 · 0 评论 -
leetcode-9. Palindrome Number
题目类型:数学问题题意:判断一个数是否是回文数(定义:反向排序仍与原数相同) - 不使用额外空间分析:如果Integer转换成String处理,递归会使用额外的存储空间。负数不是回文数我的思路: 效率:58%步骤:转化成字符串,双指针分别指向头和尾 ,判断每一个字符是否相同class Solution { publi...原创 2018-07-26 18:19:33 · 180 阅读 · 0 评论 -
150. Evaluate Reverse Polish Notation
算术表达式的计算原创 2017-12-13 20:18:47 · 214 阅读 · 0 评论 -
496. Next Greater Element I
原题链接一、题目要求:给出两个int数组nums1和nums2,nums1是nums2的子集, 从nums2中找到nums1中每个元素之后大于他的第一个元素位置。二、解决方法方法一:栈思路分析:1. findNums是nums的子集,所以可以将nums中的每一个元素都在nums中找到next greater element,加入到map中存放2. 再遍历find原创 2018-01-25 14:15:15 · 231 阅读 · 0 评论 -
leetcode-1. Two Sum
1. Two Sum二刷用时5min题意:给出一个int数组和一个target,从数组中找到两个数,使他们的和=target,输出两个数的下标假设每个输入只有一种解决方案,且每个数只能用一次可以有正数负数我的方法: 开始考虑可以用target/2作区分,必须是一个<=target/2和一个>=target/2的数相加才能得到target,但...原创 2018-07-25 17:59:02 · 188 阅读 · 0 评论 -
leetcode-2. Add Two Numbers
题目类型:递归、链表耗时:一刷:1h二刷:22min题意:给出两个链表,将链表中的数逆向得到的int相加,再逆序输出,用链表存储每一位。 - 若两个链表不一样长,不足位为0例子:错误尝试:Stack分别遍历两个链表,将数字存入stack,再依次出栈拼接成int,相加后不断除以10,从最后一位开始形成链表 public ListN...原创 2018-07-25 18:00:50 · 174 阅读 · 0 评论 -
leetcode-3. Longest Substring Without Repeating Characters
无重复元素的最长子串(不是子序列,子序列可以不连续,子串必须是一段连续)题意:给出一个字符串,输出他的无重复元素的最长子串的长度: - 无重复元素 - 最长 - 子串的字符在父串中连续,不可以间隔方法一如果s长度小于等于1,直接输出其长度遍历每一个字符,维护两个指针,left无重复子串的左边界,right为当前遍历到的字符 当前字符在map中找到,left移到map...原创 2018-07-25 18:02:28 · 165 阅读 · 0 评论 -
leetcode-6. ZigZag Conversion
题目类型:字符串题意:之字形结构 给出一个字符串和一个数字n,将字符串每个字符按照n行之字形结构重新排布,按行重新拼接输出。例子:我的思路:找每行下标的规律 97%观察几个例子可知,temp = n+(n - 2)个字符一组所以可将字符串分割,每组中第0行元素只有一个,下标为0,第一行:1, 1 + n,第二行:2, 1+n - 1,第三行:3,1+...原创 2018-07-25 18:03:52 · 191 阅读 · 0 评论 -
leetcode-4. Median of Two Sorted Arrays
4. Median of Two Sorted Arrays20min题意:给出两个有序数组,找出他们的中位数,时间复杂度控制在O(log(m+n))方法一:归并做法,O(m+n)时间O(M+N)空间O(1) 两个数组长度之和为len那么对于奇数个元素,中位数的下标是len/2对于偶数个元素,中位数是:(len/2-1 + len/2)/2所以,利用归并...原创 2018-07-25 18:04:57 · 272 阅读 · 0 评论 -
LeetCode-5. Longest Palindromic Substring
题目类型:回文、字符串题意:给出一个字符串,输出其中最长的回文子串方法一:中心展开法:O(N^2^) 95%时间O(N^2^)空间O(1)思路:要求的是回文【子串】,那么必须是连续的。对于每一个字符,向左向右查找,两个字符若相同那么继续向左向右,否则已找到以当前字符为中心的最长回文子串难点:当前字符可能是奇数回文串中的中心,也可能是偶数回文...原创 2018-07-25 18:05:53 · 139 阅读 · 0 评论 -
leetcode-7. Reverse Integer
题目类型:字符串题意:数字反转,给出一个数字,将他的各个位反转,例如123->321,-123->-321 - 注意负数符号不参与。 - 注意反转后开头的0要去掉,例如120->21 - 注意int反转后可能成为double:1534236469/-1534236469,当数组越界int输出0知识点:String转化成int, - valueOf ...原创 2018-07-25 21:00:07 · 324 阅读 · 0 评论 -
leetcode-8. String to Integer (atoi)
题目类型:字符串题意:实现atoi函数(String转化成int) - 注意各种边界情况。我的思路:循环遍历string的每一个字符,res += res * 10 + c; - 如果string为空,return 0; - 如果只有符号,非法–return 0 - 如果有多个符号,非法–return 0 - 若字符串开头有空格,不影响–==string.trim()...原创 2018-07-26 18:06:37 · 201 阅读 · 0 评论 -
leetcode-24. Swap Nodes in Pairs
题目类型:链表题意:给出一个链表,按对交换节点, - 常数空间 - 不能用改变节点的值的方法做,需要交换节点本身。我的思路:迭代。两两交换,修改next等指针 效率:10%对于当前节点first,和下一个节点second - 记录上一次交换后的最后一个节点pre - 因为交换后链表断裂,所以暂存second下一个节点的位置,temp = second.ne...原创 2018-08-07 18:02:56 · 255 阅读 · 0 评论