LeetCode题解
freeygh
这个作者很懒,什么都没留下…
展开
-
LeetCode 23. Merge k Sorted Lists(合并k个已排序的链表)
简单的解法可以复用 Merge Two Sorted Lists(见 LeetCode 21Merge Two Sorted Lists)的函数每次合并两个链表,用for循环以此合并所有链表。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode...原创 2019-03-30 16:22:42 · 85 阅读 · 0 评论 -
Leetcode_1.两数之和
1.Two SumGiven an array of integers, returnindicesof the two numbers such that they add up to a specific target.You may assume that each input would haveexactlyone solution, and you may not u...原创 2019-06-30 22:21:48 · 77 阅读 · 0 评论 -
LeetCode_20.有效的括号
给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: ...原创 2019-07-03 23:17:12 · 124 阅读 · 0 评论 -
LeetCode_3.无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"w...原创 2019-07-01 22:44:58 · 112 阅读 · 0 评论 -
LeetCode 42. Trapping Rain Water
【题意】给定n个非负整数,代表一个柱状图,每一个柱子的宽度为1,计算下雨之后柱状图能装多少水?例如:[0,1,0,2,1,0,1,3,2,1,2,1] 返回 6上述柱状图是由数组表示[0,1,0,2,1,0,1,3,2,1,2,1]。在这种情况下,6个单位的雨水(蓝色部分)被装。方法一:【分析】对于每个柱子,找到其左右两边最高的柱子,该柱子能容纳的面积就是 min(...原创 2019-04-09 23:19:52 · 112 阅读 · 0 评论 -
LeetCode 41. First Missing Positive
Given an unsorted integer array, find the smallest missingpositive integer.Example 1:Input: [1,2,0]Output: 3Example 2:Input: [3,4,-1,1]Output: 2Example 3:Input: [7,8,9,11,12]Outpu...原创 2019-04-08 23:07:49 · 133 阅读 · 0 评论 -
LeetCode 22 Generate Parentheses——回溯法初探
思路:遇到这种题不要害怕,认真动手和脑去列出可能的情况,本题是括号配对问题,给出N对括号,列出所有可能的配对情况。对于这种要做选择的题,我们要联想到电脑程序的选择过程,每一次选择有两种可能,要么左,要么右(0或者1).由此我们一定要想到我们的数据结构那种结构跟这个过程相似,Yes,二叉树,是的。我们通过二叉树模拟选择过程,列出所有可能的结果。并根据正确的结果来分析我们的程序的执行过程,以及边界条件...原创 2019-03-28 22:19:24 · 141 阅读 · 0 评论 -
LeetCode 20.括号匹配(Valid Parentheses)
给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:输入: "([)]"输出: fals...原创 2019-03-28 20:44:37 · 102 阅读 · 0 评论 -
LeetCode 29. Divide Two Integers
Given two integersdividendanddivisor, divide two integers without using multiplication, division and mod operator.Return the quotient after dividingdividendbydivisor.The integer division should ...原创 2019-04-01 22:40:02 · 105 阅读 · 0 评论 -
LeetCode 38. Count and Say
解法一:string countAndSay(int n) { if (n == 0) return ""; string res = "1"; while (--n) { string cur = ""; for (int i = 0; i < res.size(); i++) { int coun...原创 2019-04-07 12:03:28 · 94 阅读 · 0 评论 -
LeetCode 37. Sudoku Solver(数独问题)
Difficulty: Hard解法一:class Solution {public: void solveSudoku(vector<vector<char>>& board) { solveSudoku(board, 0, 0); } bool check(vector<vector<c...原创 2019-04-07 00:11:11 · 160 阅读 · 0 评论 -
LeetCode 36. Valid Sudoku(九宫格数独)
依次检查每行,每列,每个子九宫格是否出现重复元素,如果出现返回false,否则返回true.难点在于表示第i个九宫格每个格点的坐标。观察行号规律:第0个九宫格:000111222;第1个九宫格:000111222;第2个九宫格:000111222;第3个九宫格:333444555;第4个九宫格:333444555;第5个九宫格:333444555;第6个...原创 2019-04-06 19:53:06 · 481 阅读 · 0 评论 -
LeetCode 32. Longest Valid Parentheses
Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring.Example 1:Input: "(()"Output: 2Explanation: The longest valid...原创 2019-04-06 16:58:40 · 107 阅读 · 0 评论 -
LeetCode 31. Next Permutation(下一全排列)
这道题让我们求下一个排列顺序,有题目中给的例子可以看出来,如果给定数组是降序,则说明是全排列的最后一种情况,则下一个排列就是最初始情况。我们再来看下面一个例子,有如下的一个数组1 2 7 4 3 1下一个排列为:1 3 1 2 4 7那么是如何得到的呢,我们通过观察原数组可以发现,如果从末尾往前看,数字逐渐变大,到了2时才减小的,然后我们再从后往前找第一个比2大...原创 2019-04-06 11:16:41 · 67 阅读 · 0 评论 -
LeetCode 28. Implement strStr()
暴力匹配:class Solution {public: int strStr(string haystack, string needle) { int m = haystack.size(), n = needle.size(); for (int i = 0; i <= m - n; i++) { int j = ...原创 2019-03-31 21:55:51 · 73 阅读 · 0 评论 -
LeetCode 30. Substring with Concatenation of All Words
You are given a string, s, and a list of words, words, that are all of the same length. Find all starting indices of substring(s) in s that is a concatenation of each word in words exactly once and wi...原创 2019-04-05 00:16:42 · 87 阅读 · 0 评论 -
LeetCode 25. Reverse Nodes in k-Group
递归解:题目的意思是跟一个链表,和一个整数k,然后以k个节点为一组进行翻转操作,这里我们要注意到把原链表分为k组,每组都要翻转,因此我们用递归来求解。把原问题分解为一个一个子问题,每层递归求解一个子问题的链表翻转问题,然后返回翻转后的头结点。我们维护三个指针ListNode * prev ,*cur, *next,其中一个用来保存第一组链表翻转之后的头结点,最后返回这个指针就是答案,其余两个...原创 2019-03-31 12:37:18 · 72 阅读 · 0 评论 -
LeetCode 24. Swap Nodes in Pairs(两两交换链表中的节点)
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* s...原创 2019-03-31 11:42:00 · 82 阅读 · 0 评论 -
Leetcode_2.两数相加
2.Add Two Numbers_MediumYou are given twonon-emptylinked lists representing two non-negative integers. The digits are stored inreverse orderand each of their nodes contain a single digit. Add t...原创 2019-07-01 00:07:22 · 100 阅读 · 0 评论