LeetCode
文章平均质量分 52
Elegdawnce
这个作者很懒,什么都没留下…
展开
-
78. Subsets
Related Topics:Backtracking这道题和之前的combination系列不同在于不是达到某个条件才把temp加入到res里,而是针对回溯的过程,每一次temp加一个数,就要把当前temp加入到res中class Solution {public: vector> subsets(vector& nums) { vector原创 2017-07-20 13:03:07 · 215 阅读 · 0 评论 -
547. Friend Circles
There are N students in a class. Some of them are friends, while some are not. Their friendship is transitive in nature. For example, if A is adirect friend of B, and B is a direct friend of C, then原创 2017-09-01 18:00:48 · 241 阅读 · 0 评论 -
657. Judge Route Circle
Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back tothe original place. The move sequence is represented原创 2017-09-01 15:47:59 · 222 阅读 · 0 评论 -
671. Second Minimum Node In a Binary Tree
Given a non-empty special binary tree consisting of nodes with the non-negative value, where each node in this tree has exactlytwo or zero sub-node. If the node has two sub-nodes, then this node's v原创 2017-09-06 17:39:45 · 266 阅读 · 0 评论 -
669. Trim a Binary Search Tree
Given a binary search tree and the lowest and highest boundaries as L andR, trim the tree so that all its elements lies in [L, R] (R >= L). You might need to change the root of the tree, so the resu原创 2017-09-05 13:53:20 · 231 阅读 · 0 评论 -
670. Maximum Swap
Given a non-negative integer, you could swap two digits at most once to get the maximum valued number. Return the maximum valued number you could get.Example 1:Input: 2736Output: 7236Explanati原创 2017-09-05 11:32:28 · 392 阅读 · 0 评论 -
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 adjacent cell, where "adjacent" cells are those horizontally or vertically n原创 2017-09-04 17:25:25 · 234 阅读 · 0 评论 -
169. Majority Element
题目:Given an array of size n, find the majority element. The majority element is the element that appearsmore than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority elem原创 2017-08-15 10:27:53 · 235 阅读 · 0 评论 -
129. Sum Root to Leaf Numbers
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.An example is the root-to-leaf path 1->2->3 which represents the number123.Find the total sum原创 2017-08-14 17:03:04 · 214 阅读 · 0 评论 -
653. Two Sum IV - Input is a BST
Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target.Example 1:Input: 5 / \ 3 6 / \原创 2017-09-01 23:40:25 · 218 阅读 · 0 评论 -
645. Set Mismatch
The set S originally contains numbers from 1 to n. But unfortunately, due to the data error, one of the numbers in the set got duplicated toanother number in the set, which results in repetition of原创 2017-09-02 14:19:53 · 256 阅读 · 0 评论 -
739. Daily Temperatures
Given a list of daily temperatures, produce a list that, for each day in the input, tells you how many days you would have to wait until a warmer temperature. If there is no future day for which this原创 2018-01-18 14:18:06 · 243 阅读 · 0 评论 -
744. Find Smallest Letter Greater Than Target
Given a list of sorted characters letters containing only lowercase letters, and given a target lettertarget, find the smallest element in the list that is larger than the given target.Letters als原创 2018-01-18 10:55:41 · 250 阅读 · 0 评论 -
763. Partition Labels
A string S of lowercase letters is given. We want to partition this string into as many parts as possible so that each letter appears in at most one part, and return a list of integers representing th原创 2018-01-17 12:55:58 · 291 阅读 · 0 评论 -
760. Find Anagram Mappings
Given two lists Aand B, and B is an anagram ofA. B is an anagram of A means B is made by randomizing the order of the elements inA.We want to find an index mapping P, from A toB. A mapping P[i原创 2018-01-16 12:57:27 · 326 阅读 · 0 评论 -
496. Next Greater Element I
You are given two arrays (without duplicates) nums1 andnums2 where nums1’s elements are subset of nums2. Find all the next greater numbers fornums1's elements in the corresponding places of nums2.原创 2018-01-23 13:54:22 · 236 阅读 · 0 评论 -
406. Queue Reconstruction by Height
Suppose you have a random list of people standing in a queue. Each person is described by a pair of integers(h, k), where h is the height of the person and k is the number of people in front of this原创 2017-09-03 11:05:29 · 246 阅读 · 0 评论 -
611. Valid Triangle Number
Given an array consists of non-negative integers, your task is to count the number of triplets chosen from the array that can make triangles if we take them as side lengths of a triangle.Example 1:原创 2017-09-02 22:03:45 · 300 阅读 · 0 评论 -
628. Maximum Product of Three Numbers
Given an integer array, find three numbers whose product is maximum and output the maximum product.Example 1:Input: [1,2,3]Output: 6Example 2:Input: [1,2,3,4]Output: 24Note:The原创 2017-09-02 16:24:26 · 267 阅读 · 0 评论 -
53. Maximum Subarray
Related Topics:Dynamic Programming一开始想复杂了,想用二维数组存下标i到下标j的最大sum,其实用两个变量即可解决。sum存每一次向后移一位后的最大和,res是存此次最大和与之前的最大和相比较所得的最大和class Solution {public: int maxSubArray(vector& nums) { int原创 2017-07-26 00:21:22 · 215 阅读 · 0 评论 -
201. Bitwise AND of Numbers Range
Given a range [m, n] where 0 For example, given the range [5, 7], you should return 4.5:101 6:110 7:111 4:100从最高位开始相同的bitsint rangeBitwiseAnd(int m, int n) { //取第i位上的bi原创 2017-08-16 14:43:49 · 207 阅读 · 0 评论 -
40. Combination Sum II
Related Topics:Backtracking这里的重点是去重,重复的是当前position的位置与下一个position位置,而不是在当前position位置后遍历重复的数字class Solution {public: vector> combinationSum2(vector& candidates, int target) {原创 2017-07-18 13:32:52 · 279 阅读 · 0 评论 -
39. Combination Sum
Related Topics:Backtracking回溯法,或称DFS,肯定是要用函数的嵌套。每次将元素加进队列里,如果结果大于target就pop,等于target就将队列加进新的队列里,小于target就继续嵌套。class Solution {public: void swap(int& e1, int& e2){ int tmp原创 2017-07-17 18:22:25 · 212 阅读 · 0 评论 -
77. Combinations
Related Topics:Backtracking还是回溯法,一个系列的,因此做题技巧不变,函数嵌套,找到返回的条件并把dfs出的结果添加到vector里这里需要注意的是count形参变量需要使用引用用法,记录上一次的游标位置,下一次迭代+1,不然报错class Solution {public: vector> combine(int n, int k) {原创 2017-07-17 22:31:29 · 302 阅读 · 0 评论 -
69. Sqrt(x)
Related Topics: Binary Search,Math这里的数学法是使用牛顿迭代法,这里使用二分法查找class Solution {public: int mySqrt(int x) { if (0 == x || 1==x) return x; int low = 1, high = x, ans;原创 2017-07-17 16:24:25 · 304 阅读 · 0 评论 -
476. Number Complement
Related Topics:Bit Manipulation思路:获得num的每一位取非后赋给新的数n需要注意的是如何置n的每一位为1或者0:int n|=(1class Solution {public: int findComplement(int num) { int n=0,i=0; while(num){原创 2017-07-20 16:35:29 · 211 阅读 · 0 评论 -
477. Total Hamming Distance
Related Topics:Bit Manipulation一开始使用求两个数的汉明距离的思路,发现超时了,所以只能想新的方法。int totalHammingDistance(vector& nums) { int sum=0; for(int i=0;i for(int j=i+1;j原创 2017-07-20 16:12:05 · 288 阅读 · 0 评论 -
461. Hamming Distance
Related Topics:Bit Manipulation计算汉明距离,两个n bits的二进制数之间不同比特位的个数这里比较偷懒,因为int型4字节,所以直接范围取0~31位,或者可以用while循环,每次除2,即右移1位,然后%2即是取当前1 bit上是1或是0取第i位上的bit:(x>>i)&1class Solution {public: int ha原创 2017-07-20 15:22:16 · 204 阅读 · 0 评论 -
136. Single Number
Related Topics:Hash Table,Bit Manipulation一开始对位计算不太了解,这道题普通的就是设标志位,相同的就记为1,最后输出flag为0的,没想到用位计算代码量这么小位计算的重要公式: a^b=b^a,a^0=a,n^(n-1)的最右侧必为11,1,2,2,31^1^2^2^3=3异或就是去同存异class Solution {原创 2017-07-20 13:21:37 · 235 阅读 · 0 评论 -
216. Combination Sum III
Related Topics:BackTracking和之前的没什么区别,重点还是找到返回出口条件class Solution {public: vector> combinationSum3(int k, int n) { vector temp; vector> results; int count=1;原创 2017-07-18 14:33:39 · 295 阅读 · 0 评论 -
377. Combination Sum IV
class Solution {public: int combinationSum4(vector& nums, int target) { vector temp; vector>results; combination(nums, target,temp,results); return results.s原创 2017-07-18 15:17:12 · 231 阅读 · 0 评论 -
516. Longest Palindromic Subsequence
Related Topics: Dynamic Programming这道题主要在于用两个指针,找到从下标i到下标j的最长回文串class Solution {public: int longestPalindromeSubseq(string s) { int dp[s.size()][s.size()]; for(int i=0;i原创 2017-07-24 18:21:42 · 219 阅读 · 0 评论 -
213. House Robber II
Related Topics:Dynamic Programming1.抢劫了第1个房间,那么第n个房间不能抢(0~n-2)2.不抢劫第1个房间,那么第n个房间可以抢劫(1~n-1)好像最后没用到r,因为写的时候默认数组大小为nums,size()-1,应该是用r-l+1比较规范class Solution {public: int rob(v原创 2017-07-23 21:34:55 · 231 阅读 · 0 评论 -
198. House Robber
Related Topics:Dynamic Programming比较基础的动态规划题,思路就是找到动态方程 dp[i]=max(dp[i-2]+nums[i-1],dp[i-1]);dp[i]没有考虑num[i]是否该偷,只是存偷到i-1个房子的最大值,可以是dp[i-1](偷),dp[i-2]+nums[i-1](不偷)class Solution {public:原创 2017-07-23 21:09:51 · 216 阅读 · 0 评论 -
347. Top K Frequent Elements
Related Topics:Hash Table,Heap哈希表部分较为容易,关键就是对哈希表值的排序,题目设定为nlogn,则较容易想到堆排序,还不太了解,先这么copy着。class Solution {public: vector topKFrequent(vector& nums, int k) { vector res; u原创 2017-07-22 18:28:55 · 200 阅读 · 0 评论 -
219. Contains Duplicate II
Related Topic: Hash Table,Array思路:value存相同数的下标,对下标们排序,相邻下标相减看是否不超过kclass Solution {public: bool containsNearbyDuplicate(vector& nums, int k) { unordered_map> hashmap; fo原创 2017-07-22 17:25:16 · 216 阅读 · 0 评论 -
217. Contains Duplicate
Related Topics:Hash Table,Array如果数组里的数字全部不重复则返回false,如果有一个数重复2次以上则返回true,哈希表key存数字,value存出现次数class Solution {public: bool containsDuplicate(vector& nums) { unordered_map hashma原创 2017-07-22 16:53:02 · 197 阅读 · 0 评论 -
49. Group Anagrams
Related Topics:Hash Table,String思路:肯定是需要哈希表来存键值对了,重要的是key值的选取,涉及到哈希表的创建,遍历等操作,很基础,对哈希表的运用有了基本的了解。class Solution {public: vector> groupAnagrams(vector& strs) { vector> res;原创 2017-07-22 16:23:18 · 175 阅读 · 0 评论 -
202. Happy Number
Related Topics:Hash Table,Math首先最先想到的思路是将n的每一位数平方后加起来,将新值更新到n中,一旦n=1则为幸福数字,但会出现n一直不等于1的情况,此时就要判断在什么情况下n永远不会等于1,可以对每一次n拆分得到的一位数字做标记,当所有的数字使用次数大于n的位数时即可以判断,n永远不会等于1好像没有用到哈希表来做,希望以后能有所改进。class So原创 2017-07-22 14:07:08 · 197 阅读 · 0 评论 -
728. Self Dividing Numbers
A self-dividing number is a number that is divisible by every digit it contains.For example, 128 is a self-dividing number because 128 % 1 == 0, 128 % 2 == 0, and 128 % 8 == 0.Also, a self-divid原创 2018-01-20 12:14:10 · 270 阅读 · 0 评论