LeetCode
Teeerrrsss
这个作者很懒,什么都没留下…
展开
-
LeetCode 29 Divide Two Integers
LeetCode 29 Divide Two Integers题目大意:给你俩32位的数,不能用除法、乘法和模运算,让求出它们的商分析:题目意思挺容易理解的,难一点的地方就是不能用这些运算,所以就需要去考虑除法的本质。我们知道,四则运算中乘法运算是加法的演化,或者说本质上可以通过加法来理解,那么对于除法,也应该就对应和减法有一定的相关性。这也是我首先想到的思路:对被除数不断的减去除数,同...原创 2019-05-23 00:47:01 · 125 阅读 · 0 评论 -
LeetCode 368. Largest Divisible Subset
题目分析看上去是很复杂的题目,需要去搜索。搜索的复杂度就是指数级的了,如果数很多就不现实了。换种思路,根据整除的传递性,比如4可以整除以2,8可以整除以4,所以8自然可以整除以2,我们就可以简化这个问题为一个dp问题。但是需要先对数组排序。dp[i] 表示数组中第i个元素和之前的数能组成的最多的整除集合的数量,初始值显然是1,就是本身一个元素作为集合。然后对每个数,遍历它之前的所有数,由...原创 2019-08-05 19:24:54 · 110 阅读 · 0 评论 -
LeetCode 334. Increasing Triplet Subsequence
题目分析看到题目的第一想法就是用dp来优化时间,dp[i]表示i号下标元素之前比该元素小的元素数量,初始化全为0,当dp[i]等于2的时候,就意味存在这样的三元组,返回true代码如下:class Solution {public: bool increasingTriplet(vector<int>& nums) { if (nums.si...原创 2019-08-06 15:25:00 · 101 阅读 · 0 评论 -
LeetCode 229. Majority Element II
题目分析这道题是之前写过的Leetcode169. Majority Element的一个延伸,就是做了一点点小小的变化。关键点还是169里提到的摩尔投票法,在那篇写的很清楚了。现在的问题是要找出所有出现不少于n/3次的元素,首先可以确定的是满足这样的元素最多只有俩。因为假设有3个,那这三个的数量加起来就>n,显然是错误的,知道了这一点接下来我们就可以直接来找出出现最多的两个众数。...原创 2019-08-09 19:58:41 · 259 阅读 · 0 评论 -
LeetCode 19. Remove Nth Node From End of List
题目分析最近在把之前刷过的LC题目拿出来重做,选一些经典的题目记录下来,这道题就是很经典的也适合面试的时候写的题。这道题不难,但是链表的题目就是需要注意一些边界情况。所以一般链表的题目在写代码的时候有两个注意的点:一般都会手动加一个头结点来方便对第一个结点的处理。一般在修改指针的next的时候需要考虑这个指针是否为空 即考虑是否需要&& p下面来看这道题,最优的做...原创 2019-08-20 15:19:18 · 76 阅读 · 0 评论 -
LeetCode 26. Remove Duplicates from Sorted Array
题目分析 && 代码这也是复习的时候感慨的一道好题目,特此记录一下。题目很简单,要求in place,也不算难,按照我的想法记录一下前一个出现的数字,因为有序,如果之后遇到了相同的,就把后面的删了。class Solution {public: int removeDuplicates(vector<int>& nums) { ...原创 2019-08-21 15:37:45 · 98 阅读 · 0 评论 -
LeetCode 27. Remove Element
题目分析 && 代码和前一道LeetCode 26. Remove Duplicates from Sorted Array一样的思路,不过它的follow-up还是有点意思。按照26题的思路,可以写出下面的代码:class Solution {public: int removeElement(vector<int>& nums, int v...原创 2019-08-21 16:16:47 · 100 阅读 · 0 评论 -
LeetCode 11. Container With Most Water
题目分析也是LC很经典很老的一道题目了,考察的是双指针。能用双指针的原因基于这样的一个规则,那就是矩形的左右从两边往中间靠拢的时候,底边的长度是一定减少的,所以一开始最左边和最右边所形成的矩形的底边是最长的。那如果存在比这个大的矩形,就意味着中间一定有更高的柱子来弥补底边长度减少带来的面积损失。所以我们只需要用双指针从左和右往中间移动,移动的方法就是left和right所在柱子中,较短的那根...原创 2019-08-17 12:04:22 · 109 阅读 · 0 评论 -
LeetCode 69. Sqrt(x)
题目分析 & 代码第一想法是从1开始一个一个去试,这种想法比较naive,所以比较慢需要注意的就是base开成long long的类型,不然会产生溢出class Solution {public: int mySqrt(int x) { if (x == 0) return 0; long long base = 1; f...原创 2019-08-28 22:32:57 · 163 阅读 · 0 评论 -
LeetCode 42. Trapping Rain Water
题目分析因为这道题今天面试字节跳动给问到了原题,顺便自己也复习一遍检测一下自己。首先这道题最简单想法就是遍历每一列检查能否装水,问题就难在怎么找出来这个装水的规律。装水就意味着两边得要和这一列有高度差,然后才能产生装水的空间,而且是两边较低的那边,这个不难理解,根据木桶原理。明白这个我们就能进行分析。就拿上面的case来分析。首先需要明确的一点是第一列是肯定装不了水的,原因就是题中的设...原创 2019-07-14 22:11:20 · 91 阅读 · 0 评论 -
LeetCode 41. First Missing Positive
题目Given an unsorted integer array, find the smallest missing positive integer.Example 1:Input: [1,2,0] Output: 3Example 2:Input: [3,4,-1,1] Output: 2Example 3:Input: [7,8,9,11,12] Output: 1No...原创 2019-07-04 22:40:01 · 114 阅读 · 0 评论 -
Leetcode169. Majority Element
题目Given an array of size n, find the majority element. The majorityelement is the element that appears more than ⌊ n/2 ⌋ times. You mayassume that the array is non-empty and the majority element a...原创 2019-06-12 20:38:04 · 116 阅读 · 0 评论 -
LeetCode 3. Longest Substring Without Repeating Characters
题目Given a string, find the length of the longest substring withoutrepeating characters.Example 1:Input: “abcabcbb” Output: 3 Explanation: The answer is “abc”, withthe length of 3. Example 2:I...原创 2019-07-01 15:31:26 · 108 阅读 · 0 评论 -
LeetCode 31. Next Permutation
题目Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.If such arrangement is not possible, it must rearrange it as the lowest possibl...原创 2019-07-01 19:50:29 · 177 阅读 · 0 评论 -
LeetCode 560. Subarray Sum Equals K
题目Given an array of integers and an integer k, you need to find the total number of continuous subarrays whose sum equals to k.Example 1: Input:nums = [1,1,1], k = 2 Output: 2Note: The length of t...原创 2019-07-07 19:08:33 · 92 阅读 · 0 评论 -
LeetCode172. Factorial Trailing Zeroes
题目Given an integer n, return the number of trailing zeroes in n!.Example 1:Input: 3 Output: 0 Explanation: 3! = 6, no trailing zero. Example 2:Input: 5 Output: 1 Explanation: 5! = 120, one traili...原创 2019-06-24 20:52:52 · 137 阅读 · 0 评论 -
LeetCode72. Edit Distance
题目Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2.You have the following 3 operations permitted on a word:1.Insert a character2.Delete a ...原创 2019-06-28 19:36:08 · 213 阅读 · 0 评论 -
LeetCode 79. Word Search
题目Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacentcell, where “adjacent” cells are those horizontally or vertically...原创 2019-07-13 16:40:50 · 128 阅读 · 0 评论 -
LeetCode 124. Binary Tree Maximum Path Sum
题目大意就是说一棵非空的二叉树,然后让你找出树中的最大路径和。所谓路径就是从树中一个结点沿着父子连接的路径构成的路径。需要注意的是路径不能出现分叉,比如说图中样例2,如果-10改为30,那最大的路径和是从15到20到30再到9,就不能包括7了,因为题目中说了是从一个起点到一个终点,这一点也是解题的关键。分析leetcode给这道题的难度划分在了Hard。我觉得有道理也没道理。因为这道题看...原创 2019-07-14 15:11:06 · 147 阅读 · 0 评论 -
水杯装水问题
可能很多人都听说过水杯装水的问题,因为这是一个很经典的数学问题,很能考察一个人的思维能力和逻辑能力,广泛出现在各行各业的面试题和一些智力竞赛中。那水杯装水问题具体描述是什么样呢?最常见的情况,就是给你两个水杯,两个杯子的容量都是固定的(比方说一个杯子的容量为3L,一个为5L),但是没有刻度,然后给你足够量的水,问你能否凑出某个体积的水(比方说凑出4L)。这是出现的比较多的,也是比较简单的情况,我们...原创 2019-09-12 16:06:59 · 5281 阅读 · 0 评论