leetcode
willinux
github地址:https://github.com/stephenix
展开
-
3. 无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解法:滑动窗口,left指向窗口的最左端,然后右边依次遍历。原创 2023-10-11 09:48:47 · 93 阅读 · 0 评论 -
341. 扁平化嵌套列表迭代器
题目描述:给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。思路:参考:参考思路详解本文有两种主要的思路:1.在构造函数中提前「扁平化」整个嵌套列表2.在调用 hasNext() 或者 next() 方法的时候扁平化当前的嵌套的子列表1对应的递归,2对应的迭代之前想的是不是实现迭代器,类似链表,怎样保存下一个指针,方向不太对。Solution:class Nest原创 2021-03-23 23:09:10 · 94 阅读 · 0 评论 -
84. Largest Rectangle in Histogram
Description:Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.Analysis:输入一个数组,表示柱状图的高度,求出这个柱状图中的最大矩形的面积。面积=宽度*高度,关键在于求出宽度。height[i],求出下标i的左右两边第一个原创 2020-06-14 22:40:40 · 150 阅读 · 0 评论 -
98. Validate Binary Search Tree
Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the node’s key.The right subtree of a node contains only nodes with keys great原创 2020-06-08 17:10:27 · 122 阅读 · 0 评论 -
817. Linked List Components
Description:We are given head, the head node of a linked list containing unique integer values.We are also given the list G, a subset of the values in the linked list.Return the number of connected components in G, where two values are connected if they原创 2020-05-27 10:45:12 · 147 阅读 · 0 评论 -
148. Sort List
Description:Sort a linked list in O(n log n) time using constant space complexity.Analysis:147是插入排序,时间复杂度O(N^2),这里要求O(n log n),快排满足要求。快排是用分治的思想,将链表分成两个子链表分别排序,然后再合并链表。Solution:class Solution {public: ListNode* sortList(ListNode* head) {原创 2020-05-18 12:19:31 · 110 阅读 · 0 评论 -
147. Insertion Sort List
Description:Sort a linked list using insertion sort.Analysis:插入排序,时间复杂度O(N^2)创建一个dummy node,方便从head开始遍历。可以结合题目148一起看。两种解法:解法一:断开链表,分成两个链表,链表1是有序链表,链表2是待排序链表,依次将链表2中的元素插入到链表1的有序链表中;解法二:不断开链表,依次移动结点,移动结点后,依然保持链表不断开。Solution1:class Solution {publ原创 2020-05-18 10:42:02 · 234 阅读 · 0 评论 -
56. Merge Intervals
Description:Given a collection of intervals, merge all overlapping intervals.Example 1:Input: [[1,3],[2,6],[8,10],[15,18]]Output: [[1,6],[8,10],[15,18]]Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].Example 2:Input: [[1原创 2020-05-12 21:03:55 · 109 阅读 · 0 评论 -
986. Interval List Intersections
Description:Given two lists of closed intervals, each list of intervals is pairwise disjoint and in sorted order.Return the intersection of these two interval lists.(Formally, a closed interval [a, b] (with a <= b) denotes the set of real numbers x w原创 2020-05-12 17:16:27 · 165 阅读 · 0 评论 -
78. Subsets
Description:Given a set of distinct integers, nums, return all possible subsets (the power set).Note: The solution set must not contain duplicate subsets.Analysis:解法1:分治思想,复杂问题化成简单的子问题,子集i是子集i-1,然后加上nums[i]构成的集合。全排列、全组合、子集可以归纳为一类问题。Solution1:时间复杂度O原创 2020-05-08 23:27:51 · 106 阅读 · 0 评论 -
236. Lowest Common Ancestor of a Binary Tree
Description:Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.Analysis:第一种:很直接的解法公共祖先,所以从根到结点的path前面部分相同,有些类似两个链表的公共结点,先求出root到结点的path,然后比较即可。第二种:参考很巧妙的解法...原创 2020-05-08 15:46:03 · 163 阅读 · 0 评论 -
145. Binary Tree Postorder Traversal
Description:Given a binary tree, return the postorder traversal of its nodes’ values.Analysis:递归解法容易,如果是非递归呢?很好解法:二叉树非递归解法决定这个解法的原因是二叉树的结构和依次访问二叉树的顺序,根-左-左-根-右-右-根。Solution1:两个辅助栈,输出栈是后序遍历的逆序,辅...原创 2020-05-08 11:26:10 · 122 阅读 · 0 评论 -
543. Diameter of Binary Tree
Description:原创 2020-04-23 20:27:03 · 106 阅读 · 0 评论 -
152. Maximum Product Subarray
Description:Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product.Example 1:Input: [2,3,-2,4]Output: 6Explanatio...原创 2020-04-17 01:19:02 · 130 阅读 · 0 评论 -
1143. Longest Common Subsequence
Description:给两个字符串,求二者的最长公共子序列。Analysis:子序列:不要求连续子串:一定要去连续动态规划经典题目之一,动态规划关键是把问题划分成更小的子问题,更小的子问题可以直接求解,自底向上。很类似归纳法,找出递推公式。Solution:class Solution {public: int longestCommonSubsequence(stri...原创 2020-04-14 00:27:15 · 220 阅读 · 0 评论 -
300. Longest Increasing Subsequence
Description:Given an unsorted array of integers, find the length of longest increasing subsequence.Analysis:找到最长递增子序列,注意没有要求连续,开始想的是连续。动态规划的思路。关键是找到相互重叠的子问题,然后自底向上或者自顶向下求。Solution:class Solutio...原创 2020-04-12 23:38:19 · 122 阅读 · 0 评论 -
227. Basic Calculator II
Description:Implement a basic calculator to evaluate a simple expression string.The expression string contains only non-negative integers, +, -, *, / operators and empty spaces . The integer divisio...原创 2020-03-25 10:41:36 · 115 阅读 · 0 评论 -
224. Basic Calculator
Description:Implement a basic calculator to evaluate a simple expression string.The expression string may contain open ( and closing parentheses ), the plus + or minus sign -, non-negative integers ...原创 2020-03-24 16:36:08 · 130 阅读 · 0 评论 -
101. Symmetric Tree
Symmetric Tree题目描述: 对称树 思路: 递归和非递归两种方法实现,递归要有出口,非递归采用depth-first-search遍历。1. 递归解法此解法参考他人。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; *转载 2015-07-16 20:58:14 · 433 阅读 · 0 评论 -
Max Points on a Line
题目149:Max Points on a LineGiven n points on a 2D plane, find the maximum number of points that lie on the same straight line.题目分析: 计算在在一条直线上的点最多的个数。 两个不同的点A、B确定一条直线,这是显然的,如何判断第三个点C,在这两个点确定的一条直线上,如果A和原创 2015-10-12 21:50:01 · 491 阅读 · 0 评论 -
110. Balanced Binary Tree
Description: Given a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as:a binary tree in which the depth of the two subtrees of every no...原创 2018-05-20 19:44:18 · 193 阅读 · 0 评论 -
101. Symmetric Tree(未)
难度:easy 题目描述 Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).题目分析 二叉树遍历(递归和非递归实现) 如果根是空返回true,否则比较根的两个左右子树。解法1 递归实现class Solution {public: ...原创 2018-05-25 16:13:13 · 153 阅读 · 0 评论 -
513. Find Bottom Left Tree Value
Description Given a binary tree, find the leftmost value in the last row of the tree.Analysis sol1: 二叉树先序遍历,中-左-右,最左结点总是第一个遍历到,所以多记录一个附加值高度,当高度增加时,肯定是该层第一个结点。sol2: 二叉树层次遍历,用辅助队列,遍历每层时,记录每层的第一个...原创 2018-05-25 17:04:30 · 228 阅读 · 0 评论 -
148. Sort List(未)
Description: Sort a linked list in O(n log n) time using constant space complexity.Analysis: 解法1:快排 分析:双指针解法和剑指offer中14题调整数组顺序使奇数位于偶数前面 快排思想:一前一后指针,向中间靠拢,但是单链表没有前驱,只能向一个方向移动,所以采用双指针解法解法2:合并排序...原创 2018-06-20 21:12:08 · 151 阅读 · 0 评论 -
572.Subtree of Another Tree
Description:Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s and all...原创 2019-04-15 23:50:22 · 239 阅读 · 0 评论 -
102. Binary Tree Level Order Traversal
Description:Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).Analysis:二叉树的层次遍历,每层每层的返回,返回的是二维数组。层次遍历,用辅助队列。class Solution {pub...原创 2019-04-23 23:33:17 · 126 阅读 · 0 评论 -
103. Binary Tree Zigzag Level Order Traversal
Description:Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between).Analysis:和二叉树的层次...原创 2019-04-23 23:42:43 · 127 阅读 · 0 评论 -
110. Balanced Binary Tree
Description:Given a binary tree, determine if it is height-balanced.Analysis:二叉树先序遍历,先判断根节点的树是否是二叉平衡树,再判断以根节点左子树为根的二叉树是否是二叉平衡树,最后判断以根节点右子树为根的二叉树是否是二叉平衡树。class Solution {public: bool isBalance...原创 2019-04-24 10:12:33 · 141 阅读 · 0 评论 -
106. Construct Binary Tree from Inorder and Postorder Traversal
Description:Given inorder and postorder traversal of a tree, construct the binary tree.Analysis:给定一棵二叉树的中序和后序遍历序列,重建二叉树。class Solution {public: TreeNode* buildTree(vector<int>& inor...原创 2019-04-24 14:15:00 · 109 阅读 · 0 评论 -
108. Convert Sorted Array to Binary Search Tree
Description:Given an array where elements are sorted in ascending order, convert it to a height balanced BST.For this problem, a height-balanced binary tree is defined as a binary tree in which the ...原创 2019-04-24 16:03:43 · 102 阅读 · 0 评论 -
125. Valid Palindrome
Description:Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.Note: For the purpose of this problem, we define empty string as valid palind...原创 2019-05-29 15:01:15 · 146 阅读 · 0 评论 -
230. Kth Smallest Element in a BST
Description:Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.Note:You may assume k is always valid, 1 ≤ k ≤ BST’s total elements.Analysis:二叉搜索树,左子树都...原创 2019-05-29 15:08:53 · 197 阅读 · 0 评论 -
240. Search a 2D Matrix II
Description:Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:Integers in each row are sorted in ascending from left to right.Integ...原创 2019-05-29 15:13:44 · 143 阅读 · 0 评论 -
242. Valid Anagram
Description:Given two strings s and t , write a function to determine if t is an anagram of s.Analysis:要求两个字符串,字符相同,字符出现的次数相同,也就是是字符串全排列的两个字符。Solution:class Solution {public: bool isAnagram(...原创 2019-05-29 15:38:28 · 130 阅读 · 0 评论 -
Jump Game
Jump Game题目55:Jump Game I题目描述: Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at原创 2015-09-23 09:59:06 · 475 阅读 · 0 评论 -
Find Minimum in Rotated Sorted Array I II
题目153:Find Minimum in Rotated Sorted Array I II也是《offer》面试题8:旋转数组的最小数字。 I 和 II的区别是旋转数组是否有重复数字1. 旋转数组中无重复数字题目分析: 关键是明白旋转数组是将原来的有序数组旋转后变成两个有序的数组,且左边的有序数组的最小值一定大于右边有序数组的最小值,否则直接返回旋转数组中最左边的值。 直接上代码:clas原创 2015-09-08 22:24:49 · 453 阅读 · 0 评论 -
LRU Cache
题目146:LRU Cache题目描述: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set.get(key) - Get the value (will always be positiv原创 2015-10-09 22:32:19 · 535 阅读 · 0 评论 -
Word Break II
题目140:Word Break II参考: [1] http://blog.sina.com.cn/s/blog_eb52001d0102v2hr.html原创 2015-08-16 22:38:44 · 543 阅读 · 0 评论 -
Maximum Depth of Binary Tree
题目104:Maximum Depth of Binary Tree题目描述: Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.原创 2015-08-15 22:54:30 · 462 阅读 · 0 评论 -
Ugly Number I II
题目263/4:Ugly Number I IIleetcode上题目263、题目264,同时是《offer》上面试题34。1. 题目263:Ugly Number I链接:https://leetcode.com/problems/ugly-number/ 判断是否是丑数,代码如下:class Solution {public: bool isUgly(int num) {原创 2015-08-28 20:11:42 · 576 阅读 · 0 评论