LeetCode 简单算法题

LeetCode简单题合集 python 1672. 最富有客户的资产总量 class Solution: def maximumWealth(self, accounts: List[List[int]]) -> int: maxSum=0 #记录下最大值 for a in accounts: #遍历每个客户 if sum(a)>maxSum: #当前客户资产总和大于记录的最大值 maxSum=sum(a) retur 阅读详情

使用Nodejs 抓取的LeetCode 简单算法题  一步一步来,先攻破所有简单的题目,有些题目不适合使用JS解决,请自行斟酌

Letcode 简单题汇总



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.
      
****************************我是优雅的分割线************************
53. Maximum Subarray||
        
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.




For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1] has the largest sum = 6.




click to show more practice.


More practice:


If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.


      
****************************我是优雅的分割线************************
20. Valid Parentheses||
        Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.


The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.


      
****************************我是优雅的分割线************************
118. Pascal's Triangle||
        Given numRows, generate the first numRows of Pascal's triangle.




For example, given numRows = 5,
Return
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]




      
****************************我是优雅的分割线************************
100. Same Tree||
        
Given two binary trees, write a function to check if they are equal or not.




Two binary trees are considered equal if they are structurally identical and the nodes have the same value.


      
****************************我是优雅的分割线************************
13. Roman to Integer||
        Given a roman numeral, convert it to an integer.


Input is guaranteed to be within the range from 1 to 3999.
      
****************************我是优雅的分割线************************
112. Path Sum||
        
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.




For example:
Given the below binary tree and sum = 22,
              5
             / \
            4   8
           /   / \
          11  13  4
         /  \      \
        7    2      1






return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.
      
****************************我是优雅的分割线************************
70. Climbing Stairs||
        You are climbing a stair case. It takes n steps to reach to the top.


Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?




Note: Given n will be a positive integer.


      
****************************我是优雅的分割线************************
101. Symmetric Tree||
        Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).




For example, this binary tree [1,2,2,3,4,4,3] is symmetric:
    1
   / \
  2   2
 / \ / \
3  4 4  3






But the following [1,2,2,null,3,null,3]  is not:
    1
   / \
  2   2
   \   \
   3    3








Note:
Bonus points if you could solve it both recursively and iteratively.


      
****************************我是优雅的分割线************************
66. Plus One||
        Given a non-negative integer represented as a non-empty array of digits, plus one to the integer.


You may assume the integer do not contain any leading zero, except the number 0 itself.


The digits are stored such that the most significant digit is at the head of the list.
      
****************************我是优雅的分割线************************
119. Pascal's Triangle II||
        Given an index k, return the kth row of the Pascal's triangle.




For example, given k = 3,
Return [1,3,3,1].






Note:
Could you optimize your algorithm to use only O(k) extra space?


      
****************************我是优雅的分割线************************
38. Count and Say||
        The count-and-say sequence is the sequence of integers with the first five terms as following:
1.     1
2.     11
3.     21
4.     1211
5.     111221






1 is read off as "one 1" or 11.
11 is read off as "two 1s" or 21.
21 is read off as "one 2, then one 1" or 1211.






Given an integer n, generate the nth term of the count-and-say sequence.






Note: Each term of the sequence of integers will be represented as a string.




Example 1:
Input: 1
Output: "1"






Example 2:
Input: 4
Output: "1211"




      
****************************我是优雅的分割线************************
28. Implement strStr()||
        
Implement strStr().




Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.


      
****************************我是优雅的分割线************************
14. Longest Common Prefix||
        Write a function to find the longest common prefix string amongst an array of strings.


      
****************************我是优雅的分割线************************
67. Add Binary||
        
Given two binary strings, return their sum (also a binary string).






For example,
a = "11"
b = "1"
Return "100".


      
****************************我是优雅的分割线************************
1. Two Sum||
        Given an array of integers, return indices of the two numbers such that they add up to a specific target.


You may assume that each input would have exactly one solution, and you may not use the same element twice.




Example:
Given nums = [2, 7, 11, 15], target = 9,


Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].




      
****************************我是优雅的分割线************************
83. Remove Duplicates from Sorted List||
        
Given a sorted linked list, delete all duplicates such that each element appear only once.




For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.


      
****************************我是优雅的分割线************************
21. Merge Two Sorted Lists||
        Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
      
****************************我是优雅的分割线************************
58. Length of Last Word||
        Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string.


If the last word does not exist, return 0.


Note: A word is defined as a character sequence consists of non-space characters only.




For example, 
Given s = "Hello World",
return 5.


      
****************************我是优雅的分割线************************
69. Sqrt(x)||
        Implement int sqrt(int x).


Compute and return the square root of x.
      
****************************我是优雅的分割线************************
110. Balanced Binary Tree||
        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 node never differ by more than 1.


      
****************************我是优雅的分割线************************
107. Binary Tree Level Order Traversal II||
        Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).




For example:
Given binary tree [3,9,20,null,null,15,7],
    3
   / \
  9  20
    /  \
   15   7






return its bottom-up level order traversal as:
[
  [15,7],
  [9,20],
  [3]
]




      
****************************我是优雅的分割线************************
27. Remove Element||
        Given an array and a value, remove all instances of that value in place and return the new length.




Do not allocate extra space for another array, you must do this in place with constant memory.


The order of elements can be changed. It doesn't matter what you leave beyond the new length.




Example:
Given input array nums = [3,2,2,3], val = 3




Your function should return length = 2, with the first two elements of nums being 2.
      
****************************我是优雅的分割线************************
9. Palindrome Number||
        Determine whether an integer is a palindrome. Do this without extra space.


click to show spoilers.


Some hints:


Could negative integers be palindromes? (ie, -1)


If you are thinking of converting the integer to string, note the restriction of using extra space.


You could also try reversing an integer. However, if you have solved the problem "Reverse Integer", you know that the reversed integer might overflow. How would you handle such case?


There is a more generic way of solving this problem.




      
****************************我是优雅的分割线************************
108. Convert Sorted Array to Binary Search Tree||
        Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
      
****************************我是优雅的分割线************************
7. Reverse Integer||
        Reverse digits of an integer.




Example1: x =  123, return  321
Example2: x = -123, return -321




click to show spoilers.


Have you thought about this?


Here are some good questions to ask before coding. Bonus points for you if you have already thought through this!


If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.


Did you notice that the reversed integer might overflow? Assume the input is a 32-bit integer, then the reverse of 1000000003 overflows. How should you handle such cases?


For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.










Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.


      
****************************我是优雅的分割线************************
88. Merge Sorted Array||
        Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.




Note:
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.
      
****************************我是优雅的分割线************************
122. Best Time to Buy and Sell Stock II||
        Say you have an array for which the ith element is the price of a given stock on day i.


Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
      
****************************我是优雅的分割线************************
26. Remove Duplicates from Sorted Array||
        
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.




Do not allocate extra space for another array, you must do this in place with constant memory.






For example,
Given input array nums = [1,1,2],




Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively. It doesn't matter what you leave beyond the new length.


      
****************************我是优雅的分割线************************
155. Min Stack||
        
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.




push(x) -- Push element x onto stack.




pop() -- Removes the element on top of the stack.




top() -- Get the top element.




getMin() -- Retrieve the minimum element in the stack.








Example:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> Returns -3.
minStack.pop();
minStack.top();      --> Returns 0.
minStack.getMin();   --> Returns -2.




      
****************************我是优雅的分割线************************
136. Single Number||
        Given an array of integers, every element appears twice except for one. Find that single one.




Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?


      
****************************我是优雅的分割线************************
160. Intersection of Two Linked Lists||
        Write a program to find the node at which the intersection of two singly linked lists begins.


For example, the following two linked lists: 
A:          a1 → a2
                   ↘
                     c1 → c2 → c3
                   ↗            
B:     b1 → b2 → b3


begin to intersect at node c1.


Notes:


If the two linked lists have no intersection at all, return null.
The linked lists must retain their original structure after the function returns. 
You may assume there are no cycles anywhere in the entire linked structure.
Your code should preferably run in O(n) time and use only O(1) memory.






Credits:Special thanks to @stellari for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
141. Linked List Cycle||
        
Given a linked list, determine if it has a cycle in it.






Follow up:
Can you solve it without using extra space?


      
****************************我是优雅的分割线************************
167. Two Sum II - Input array is sorted||
        Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.


The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.


You may assume that each input would have exactly one solution and you may not use the same element twice.




Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2


      
****************************我是优雅的分割线************************
169. Majority Element||
        Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.


You may assume that the array is non-empty and the majority element always exist in the array.


Credits:Special thanks to @ts for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
183. Customers Who Never Order||
        
Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything.




Table: Customers.
+----+-------+
| Id | Name  |
+----+-------+
| 1  | Joe   |
| 2  | Henry |
| 3  | Sam   |
| 4  | Max   |
+----+-------+






Table: Orders.
+----+------------+
| Id | CustomerId |
+----+------------+
| 1  | 3          |
| 2  | 1          |
+----+------------+




Using the above tables as example, return the following:
+-----------+
| Customers |
+-----------+
| Henry     |
| Max       |
+-----------+


      
****************************我是优雅的分割线************************
176. Second Highest Salary||
        
Write a SQL query to get the second highest salary from the Employee table.




+----+--------+
| Id | Salary |
+----+--------+
| 1  | 100    |
| 2  | 200    |
| 3  | 300    |
+----+--------+




For example, given the above Employee table, the query should return 200 as the second highest salary. If there is no second highest salary, then the query should return null.


+---------------------+
| SecondHighestSalary |
+---------------------+
| 200                 |
+---------------------+


      
****************************我是优雅的分割线************************
172. Factorial Trailing Zeroes||
        Given an integer n, return the number of trailing zeroes in n!.


Note: Your solution should be in logarithmic time complexity.


Credits:Special thanks to @ts for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
181. Employees Earning More Than Their Managers||
        
The Employee table holds all employees including their managers. Every employee has an Id, and there is also a column for the manager Id.


+----+-------+--------+-----------+
| Id | Name  | Salary | ManagerId |
+----+-------+--------+-----------+
| 1  | Joe   | 70000  | 3         |
| 2  | Henry | 80000  | 4         |
| 3  | Sam   | 60000  | NULL      |
| 4  | Max   | 90000  | NULL      |
+----+-------+--------+-----------+




Given the Employee table, write a SQL query that finds out employees who earn more than their managers. For the above table, Joe is the only employee who earns more than his manager.


+----------+
| Employee |
+----------+
| Joe      |
+----------+


      
****************************我是优雅的分割线************************
190. Reverse Bits||
        Reverse bits of a given 32 bits unsigned integer.


For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000).




Follow up:
If this function is called many times, how would you optimize it?




Related problem: Reverse Integer


Credits:Special thanks to @ts for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
189. Rotate Array||
        Rotate an array of n elements to the right by k steps.
For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4]. 


Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.




[show hint]
Hint:
Could you do it in-place with O(1) extra space?




Related problem: Reverse Words in a String II


Credits:Special thanks to @Freezen for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
171. Excel Sheet Column Number||
        Related to question Excel Sheet Column Title
Given a column title as appear in an Excel sheet, return its corresponding column number.


For example:
    A -> 1
    B -> 2
    C -> 3
    ...
    Z -> 26
    AA -> 27
    AB -> 28 


Credits:Special thanks to @ts for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
191. Number of 1 Bits||
        Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).


For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.


Credits:Special thanks to @ts for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
196. Delete Duplicate Emails||
        
Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique emails based on its smallest Id.


+----+------------------+
| Id | Email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
| 3  | john@example.com |
+----+------------------+
Id is the primary key column for this table.




For example, after running your query, the above Person table should have the following rows:
+----+------------------+
| Id | Email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
+----+------------------+


      
****************************我是优雅的分割线************************
197. Rising Temperature||
        Given a Weather table, write a SQL query to find all dates' Ids with higher temperature compared to its previous (yesterday's) dates.


+---------+------------+------------------+
| Id(INT) | Date(DATE) | Temperature(INT) |
+---------+------------+------------------+
|       1 | 2015-01-01 |               10 |
|       2 | 2015-01-02 |               25 |
|       3 | 2015-01-03 |               20 |
|       4 | 2015-01-04 |               30 |
+---------+------------+------------------+




For example, return the following Ids for the above Weather table:
+----+
| Id |
+----+
|  2 |
|  4 |
+----+


      
****************************我是优雅的分割线************************
175. Combine Two Tables||
        
Table: Person


+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+
PersonId is the primary key column for this table.






Table: Address
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+
AddressId is the primary key column for this table.








Write a SQL query for a report that provides the following information for 
each person in the Person table, regardless if there is an address for each 
of those people:




FirstName, LastName, City, State


      
****************************我是优雅的分割线************************
35. Search Insert Position||
        Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.


You may assume no duplicates in the array.




Here are few examples.
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0


      
****************************我是优雅的分割线************************
182. Duplicate Emails||
        
Write a SQL query to find all duplicate emails in a table named Person.


+----+---------+
| Id | Email   |
+----+---------+
| 1  | a@b.com |
| 2  | c@d.com |
| 3  | a@b.com |
+----+---------+




For example, your query should return the following for the above table:
+---------+
| Email   |
+---------+
| a@b.com |
+---------+




Note: All emails are in lowercase.
      
****************************我是优雅的分割线************************
198. House Robber||
        You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected and it will automatically contact the police if two adjacent houses were broken into on the same night.


Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police.


Credits:Special thanks to @ifanchu for adding this problem and creating all test cases. Also thanks to @ts for adding additional test cases.
      
****************************我是优雅的分割线************************
193. Valid Phone Numbers||
        Given a text file file.txt that contains list of phone numbers (one per line), write a one liner bash script to print all valid phone numbers.


You may assume that a valid phone number must appear in one of the following two formats: (xxx) xxx-xxxx or xxx-xxx-xxxx. (x means a digit)


You may also assume each line in the text file must not contain leading or trailing white spaces.


For example, assume that file.txt has the following content:
987-123-4567
123 456 7890
(123) 456-7890




Your script should output the following valid phone numbers:
987-123-4567
(123) 456-7890


      
****************************我是优雅的分割线************************
202. Happy Number||
        Write an algorithm to determine if a number is "happy".


A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers.


Example: 19 is a happy number




12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1




Credits:Special thanks to @mithmatt and @ts for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
206. Reverse Linked List||
        Reverse a singly linked list.


click to show more hints.


Hint:
A linked list can be reversed either iteratively or recursively. Could you implement both?


      
****************************我是优雅的分割线************************
168. Excel Sheet Column Title||
        Given a positive integer, return its corresponding column title as appear in an Excel sheet.


For example:
    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB 


Credits:Special thanks to @ifanchu for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
231. Power of Two||
        
Given an integer, write a function to determine if it is a power of two.




Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
217. Contains Duplicate||
        
Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.


      
****************************我是优雅的分割线************************
195. Tenth Line||
        How would you print just the 10th line of a file?


For example, assume that file.txt has the following content:
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10




Your script should output the tenth line, which is:
Line 10




[show hint]
Hint:
1. If the file contains less than 10 lines, what should you output?
2. There's at least three different solutions. Try to explore all possibilities.


      
****************************我是优雅的分割线************************
219. Contains Duplicate II||
        
Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k.


      
****************************我是优雅的分割线************************
242. Valid Anagram||
        Given two strings s and t, write a function to determine if t is an anagram of s. 


For example,
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.




Note:
You may assume the string contains only lowercase alphabets.


Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?
      
****************************我是优雅的分割线************************
203. Remove Linked List Elements||
        Remove all elements from a linked list of integers that have value val.


Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6,  val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5




Credits:Special thanks to @mithmatt for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
235. Lowest Common Ancestor of a Binary Search Tree||
        
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.






According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has both v and w as descendants (where we allow a node to be a descendant of itself).”




        _______6______
       /              \
    ___2__          ___8__
   /      \        /      \
   0      _4       7       9
         /  \
         3   5






For example, the lowest common ancestor (LCA) of nodes 2 and 8 is 6. Another example is LCA of nodes 2 and 4 is 2, since a node can be a descendant of itself according to the LCA definition.
      
****************************我是优雅的分割线************************
232. Implement Queue using Stacks||
        
Implement the following operations of a queue using stacks.




push(x) -- Push element x to the back of queue.




pop() -- Removes the element from in front of queue.




peek() -- Get the front element.




empty() -- Return whether the queue is empty.




Notes:


You must use only standard operations of a stack -- which means only push to top, peek/pop from top, size, and is empty operations are valid.
Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).




      
****************************我是优雅的分割线************************
234. Palindrome Linked List||
        Given a singly linked list, determine if it is a palindrome.


Follow up:
Could you do it in O(n) time and O(1) space?
      
****************************我是优雅的分割线************************
257. Binary Tree Paths||
        
Given a binary tree, return all root-to-leaf paths.




For example, given the following binary tree:




   1
 /   \
2     3
 \
  5






All root-to-leaf paths are:
["1->2->5", "1->3"]




Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
204. Count Primes||
        Description:
Count the number of prime numbers less than a non-negative number, n.


Credits:Special thanks to @mithmatt for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
125. Valid Palindrome||
        
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.






For example,
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.






Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.


For the purpose of this problem, we define empty string as valid palindrome.


      
****************************我是优雅的分割线************************
258. Add Digits||
        
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. 






For example:




Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.




Follow up:
Could you do it without any loop/recursion in O(1) runtime?




Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
226. Invert Binary Tree||
        Invert a binary tree.
     4
   /   \
  2     7
 / \   / \
1   3 6   9


to
     4
   /   \
  7     2
 / \   / \
9   6 3   1


Trivia:
This problem was inspired by this original tweet by Max Howell:
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
      
****************************我是优雅的分割线************************
225. Implement Stack using Queues||
        
Implement the following operations of a stack using queues.




push(x) -- Push element x onto stack.




pop() -- Removes the element on top of the stack.




top() -- Get the top element.




empty() -- Return whether the stack is empty.




Notes:


You must use only standard operations of a queue -- which means only push to back, peek/pop from front, size, and is empty operations are valid.
Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.
You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack).






Credits:Special thanks to @jianchao.li.fighter for adding this problem and all test cases.
      
****************************我是优雅的分割线************************
268. Missing Number||
        
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array.




For example,
Given nums = [0, 1, 3] return 2.






Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?




Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
278. First Bad Version||
        
You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad. 






Suppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all the following ones to be bad.






You are given an API bool isBadVersion(version) which will return whether version is bad. Implement a function to find the first bad version. You should minimize the number of calls to the API.




Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
205. Isomorphic Strings||
        Given two strings s and t, determine if they are isomorphic.


Two strings are isomorphic if the characters in s can be replaced to get t.


All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.


For example,
Given "egg", "add", return true.


Given "foo", "bar", return false.


Given "paper", "title", return true.


Note:
You may assume both s and t have the same length.
      
****************************我是优雅的分割线************************
263. Ugly Number||
        
Write a program to check whether a given number is an ugly number.






Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7.






Note that 1 is typically treated as an ugly number.




Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
292. Nim Game||
        
You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the winner. You will take the first turn to remove the stones.






Both of you are very clever and have optimal strategies for the game. Write a function to determine whether you can win the game given the number of stones in the heap.






For example, if there are 4 stones in the heap, then you will never win the game: no matter 1, 2, or 3 stones you remove, the last stone will always be removed by your friend.




Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
303. Range Sum Query - Immutable||
        Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.


Example:
Given nums = [-2, 0, 3, -5, 2, -1]


sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3






Note:


You may assume that the array does not change.
There are many calls to sumRange function.




      
****************************我是优雅的分割线************************
344. Reverse String||
        Write a function that takes a string as input and returns the string reversed.




Example:
Given s = "hello", return "olleh".


      
****************************我是优雅的分割线************************
345. Reverse Vowels of a String||
        Write a function that takes a string as input and reverse only the vowels of a string.




Example 1:
Given s = "hello", return "holle".






Example 2:
Given s = "leetcode", return "leotcede".






Note:
The vowels does not include the letter "y".


      
****************************我是优雅的分割线************************
121. Best Time to Buy and Sell Stock||
        Say you have an array for which the ith element is the price of a given stock on day i.


If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.


Example 1:
Input: [7, 1, 5, 3, 6, 4]
Output: 5


max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price)






Example 2:
Input: [7, 6, 4, 3, 1]
Output: 0


In this case, no transaction is done, i.e. max profit = 0.




      
****************************我是优雅的分割线************************
350. Intersection of Two Arrays II||
        
Given two arrays, write a function to compute their intersection.




Example:
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2].




Note:


Each element in the result should appear as many times as it shows in both arrays.
The result can be in any order.






Follow up:


What if the given array is already sorted? How would you optimize your algorithm?
What if nums1's size is small compared to nums2's size? Which algorithm is better?
What if elements of nums2 are stored on disk, and the memory is limited such that you cannot load all elements into the memory at once?




      
****************************我是优雅的分割线************************
237. Delete Node in a Linked List||
        
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.






Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become 1 -> 2 -> 4 after calling your function.


      
****************************我是优雅的分割线************************
387. First Unique Character in a String||
        
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.


Examples:
s = "leetcode"
return 0.


s = "loveleetcode",
return 2.








Note: You may assume the string contain only lowercase letters.


      
****************************我是优雅的分割线************************
349. Intersection of Two Arrays||
        
Given two arrays, write a function to compute their intersection.




Example:
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].




Note:


Each element in the result must be unique.
The result can be in any order.




      
****************************我是优雅的分割线************************
371. Sum of Two Integers||
        Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.


Example:
Given a = 1 and b = 2, return 3.




Credits:Special thanks to @fujiaozhu for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
367. Valid Perfect Square||
        Given a positive integer num, write a function which returns True if num is a perfect square else False.




Note: Do not use any built-in library function such as sqrt.




Example 1:
Input: 16
Returns: True






Example 2:
Input: 14
Returns: False






Credits:Special thanks to @elmirap for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
374. Guess Number Higher or Lower||
        We are playing the Guess Game. The game is as follows: 


I pick a number from 1 to n. You have to guess which number I picked.


Every time you guess wrong, I'll tell you whether the number is higher or lower.


You call a pre-defined API guess(int num) which returns 3 possible results (-1, 1, or 0):
-1 : My number is lower
 1 : My number is higher
 0 : Congrats! You got it!




Example:
n = 10, I pick 6.


Return 6.




      
****************************我是优雅的分割线************************
342. Power of Four||
        
Given an integer (signed 32 bits), write a function to check whether it is a power of 4.


Example:
Given num = 16, return true.
Given num = 5, return false.




Follow up: Could you solve it without loops/recursion?


Credits:Special thanks to @yukuairoy  for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
400. Nth Digit||
        Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 


Note:
n is positive and will fit within the range of a 32-bit signed integer (n < 231).




Example 1:
Input:
3


Output:
3






Example 2:
Input:
11


Output:
0


Explanation:
The 11th digit of the sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... is a 0, which is part of the number 10.




      
****************************我是优雅的分割线************************
401. Binary Watch||
        A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom represent the minutes (0-59).
Each LED represents a zero or one, with the least significant bit on the right.


For example, the above binary watch reads "3:25".


Given a non-negative integer n which represents the number of LEDs that are currently on, return all possible times the watch could represent.


Example:
Input: n = 1Return: ["1:00", "2:00", "4:00", "8:00", "0:01", "0:02", "0:04", "0:08", "0:16", "0:32"]




Note:


The order of output does not matter.
The hour must not contain a leading zero, for example "01:00" is not valid, it should be "1:00".
The minute must be consist of two digits and may contain a leading zero, for example "10:2" is not valid, it should be "10:02".




      
****************************我是优雅的分割线************************
389. Find the Difference||
        
Given two strings s and t which consist of only lowercase letters.


String t is generated by random shuffling string s and then add one more letter at a random position.


Find the letter that was added in t.


Example:
Input:
s = "abcd"
t = "abcde"


Output:
e


Explanation:
'e' is the letter that was added.


      
****************************我是优雅的分割线************************
326. Power of Three||
        
    Given an integer, write a function to determine if it is a power of three.




    Follow up:
    Could you do it without using any loop / recursion?




Credits:Special thanks to @dietpepsi for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
404. Sum of Left Leaves||
        Find the sum of all left leaves in a given binary tree.


Example:
    3
   / \
  9  20
    /  \
   15   7


There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.




      
****************************我是优雅的分割线************************
405. Convert a Number to Hexadecimal||
        
Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s complement method is used.




Note:


All letters in hexadecimal (a-f) must be in lowercase.
The hexadecimal string must not contain extra leading 0s. If the number is zero, it is represented by a single zero character '0'; otherwise, the first character in the hexadecimal string will not be the zero character.
The given number is guaranteed to fit within the range of a 32-bit signed integer.
You must not use any method provided by the library which converts/formats the number to hex directly.






Example 1:
Input:
26


Output:
"1a"






Example 2:
Input:
-1


Output:
"ffffffff"




      
****************************我是优雅的分割线************************
290. Word Pattern||
        Given a pattern and a string str, find if str follows the same pattern.
 Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.


Examples:


pattern = "abba", str = "dog cat cat dog" should return true.
pattern = "abba", str = "dog cat cat fish" should return false.
pattern = "aaaa", str = "dog cat cat dog" should return false.
pattern = "abba", str = "dog dog dog dog" should return false.








Notes:
You may assume pattern contains only lowercase letters, and str contains lowercase letters separated by a single space.




Credits:Special thanks to @minglotus6 for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
383. Ransom Note||
        
Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom 
note can be constructed from the magazines ; otherwise, it will return false. 




Each letter in the magazine string can only be used once in your ransom note.




Note:
You may assume that both strings contain only lowercase letters.




canConstruct("a", "b") -> false
canConstruct("aa", "ab") -> false
canConstruct("aa", "aab") -> true




      
****************************我是优雅的分割线************************
412. Fizz Buzz||
        Write a program that outputs the string representation of numbers from 1 to n.


But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”. For numbers which are multiples of both three and five output “FizzBuzz”.


Example:
n = 15,


Return:
[
    "1",
    "2",
    "Fizz",
    "4",
    "Buzz",
    "Fizz",
    "7",
    "8",
    "Fizz",
    "Buzz",
    "11",
    "Fizz",
    "13",
    "14",
    "FizzBuzz"
]




      
****************************我是优雅的分割线************************
409. Longest Palindrome||
        Given a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that can be built with those letters.


This is case sensitive, for example "Aa" is not considered a palindrome here.


Note:
Assume the length of given string will not exceed 1,010.




Example: 
Input:
"abccccdd"


Output:
7


Explanation:
One longest palindrome that can be built is "dccaccd", whose length is 7.




      
****************************我是优雅的分割线************************
415. Add Strings||
        Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.


Note:


The length of both num1 and num2 is < 5100.
Both num1 and num2 contains only digits 0-9.
Both num1 and num2 does not contain any leading zero.
You must not use any built-in BigInteger library or convert the inputs to integer directly.




      
****************************我是优雅的分割线************************
111. Minimum Depth of Binary Tree||
        Given a binary tree, find its minimum depth.


The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
      
****************************我是优雅的分割线************************
414. Third Maximum Number||
        Given a non-empty array of integers, return the third maximum number in this array. If it does not exist, return the maximum number. The time complexity must be in O(n).


Example 1:
Input: [3, 2, 1]


Output: 1


Explanation: The third maximum is 1.






Example 2:
Input: [1, 2]


Output: 2


Explanation: The third maximum does not exist, so the maximum (2) is returned instead.






Example 3:
Input: [2, 2, 3, 1]


Output: 1


Explanation: Note that the third maximum here means the third maximum distinct number.
Both numbers with value 2 are both considered as second maximum.




      
****************************我是优雅的分割线************************
434. Number of Segments in a String||
        Count the number of segments in a string, where a segment is defined to be a contiguous sequence of non-space characters.


Please note that the string does not contain any non-printable characters.


Example:
Input: "Hello, my name is John"
Output: 5




      
****************************我是优雅的分割线************************
441. Arranging Coins||
        You have a total of n coins that you want to form in a staircase shape, where every k-th row must have exactly k coins.
 
Given n, find the total number of full staircase rows that can be formed.


n is a non-negative integer and fits within the range of a 32-bit signed integer.


Example 1:
n = 5


The coins can form the following rows:
¤
¤ ¤
¤ ¤


Because the 3rd row is incomplete, we return 2.






Example 2:
n = 8


The coins can form the following rows:
¤
¤ ¤
¤ ¤ ¤
¤ ¤


Because the 4th row is incomplete, we return 3.




      
****************************我是优雅的分割线************************
437. Path Sum III||
        You are given a binary tree in which each node contains an integer value.


Find the number of paths that sum to a given value.


The path does not need to start or end at the root or a leaf, but it must go downwards
(traveling only from parent nodes to child nodes).


The tree has no more than 1,000 nodes and the values are in the range -1,000,000 to 1,000,000.


Example:
root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8


      10
     /  \
    5   -3
   / \    \
  3   2   11
 / \   \
3  -2   1


Return 3. The paths that sum to 8 are:


1.  5 -> 3
2.  5 -> 2 -> 1
3. -3 -> 11




      
****************************我是优雅的分割线************************
447. Number of Boomerangs||
        Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of points (i, j, k) such that the distance between i and j equals the distance between i and k (the order of the tuple matters).


Find the number of boomerangs. You may assume that n will be at most 500 and coordinates of points are all in the range [-10000, 10000] (inclusive).


Example:
Input:
[[0,0],[1,0],[2,0]]


Output:
2


Explanation:
The two boomerangs are [[1,0],[0,0],[2,0]] and [[1,0],[2,0],[0,0]]




      
****************************我是优雅的分割线************************
458. Poor Pigs||
        
There are 1000 buckets, one and only one of them contains poison, the rest are filled with water. They all look the same. If a pig drinks that poison it will die within 15 minutes. What is the minimum amount of pigs you need to figure out which bucket contains the poison within one hour. 




Answer this question, and write an algorithm for the follow-up general case.






Follow-up:






If there are n buckets and a pig drinking poison will die within m minutes, how many pigs (x) you need to figure out the "poison" bucket within p minutes? There is exact one bucket with poison.


      
****************************我是优雅的分割线************************
459. Repeated Substring Pattern||
        Given a non-empty string check if it can be constructed by taking a substring of it and appending multiple copies of the substring together.  You may assume the given string consists of lowercase English letters only and its length  will not exceed 10000. 


Example 1:
Input: "abab"


Output: True


Explanation: It's the substring "ab" twice.






Example 2:
Input: "aba"


Output: False






Example 3:
Input: "abcabcabcabc"


Output: True


Explanation: It's the substring "abc" four times. (And the substring "abcabc" twice.)




      
****************************我是优雅的分割线************************
448. Find All Numbers Disappeared in an Array||
        Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.


Find all the elements of [1, n] inclusive that do not appear in this array.


Could you do it without extra space and in O(n) runtime? You may assume the returned list does not count as extra space.


Example:
Input:
[4,3,2,7,8,2,3,1]


Output:
[5,6]




      
****************************我是优雅的分割线************************
461. Hamming Distance||
        The Hamming distance between two integers is the number of positions at which the corresponding bits are different.


Given two integers x and y, calculate the Hamming distance.


Note:
0 ≤ x, y < 231.




Example:
Input: x = 1, y = 4


Output: 2


Explanation:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑


The above arrows point to positions where the corresponding bits are different.




      
****************************我是优雅的分割线************************
455. Assign Cookies||
        
Assume you are an awesome parent and want to give your children some cookies. But, you should give each child at most one cookie. Each child i has a greed factor gi, which is the minimum size of a cookie that the child will be content with; and each cookie j has a size sj. If sj >= gi, we can assign the cookie j to the child i, and the child i will be content. Your goal is to maximize the number of your content children and output the maximum number.




Note:
You may assume the greed factor is always positive. 
You cannot assign more than one cookie to one child.




Example 1:
Input: [1,2,3], [1,1]


Output: 1


Explanation: You have 3 children and 2 cookies. The greed factors of 3 children are 1, 2, 3. 
And even though you have 2 cookies, since their size is both 1, you could only make the child whose greed factor is 1 content.
You need to output 1.






Example 2:
Input: [1,2], [1,2,3]


Output: 2


Explanation: You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2. 
You have 3 cookies and their sizes are big enough to gratify all of the children, 
You need to output 2.




      
****************************我是优雅的分割线************************
283. Move Zeroes||
        
Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.






For example, given nums  = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].






Note:


You must do this in-place without making a copy of the array.
Minimize the total number of operations.






Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
      
****************************我是优雅的分割线************************
475. Heaters||
        Winter is coming! Your first job during the contest is to design a standard heater with fixed warm radius to warm all the houses.


Now, you are given positions of houses and heaters on a horizontal line, find out minimum radius of heaters so that all houses could be covered by those heaters.


So, your input will be the positions of houses and heaters seperately, and your expected output will be the minimum radius standard of heaters.


Note:


Numbers of houses and heaters you are given are non-negative and will not exceed 25000.
Positions of houses and heaters you are given are non-negative and will not exceed 10^9.
As long as a house is in the heaters' warm radius range, it can be warmed.
All the heaters follow your radius standard and the warm radius will the same.






Example 1:
Input: [1,2,3],[2]
Output: 1
Explanation: The only heater was placed in the position 2, and if we use the radius 1 standard, then all the houses can be warmed.






Example 2:
Input: [1,2,3,4],[1,4]
Output: 1
Explanation: The two heater was placed in the position 1 and 4. We need to use radius 1 standard, then all the houses can be warmed.




      
****************************我是优雅的分割线************************
438. Find All Anagrams in a String||
        Given a string s and a non-empty string p, find all the start indices of p's anagrams in s.


Strings consists of lowercase English letters only and the length of both strings s and p will not be larger than 20,100.


The order of output does not matter.


Example 1:
Input:
s: "cbaebabacd" p: "abc"


Output:
[0, 6]


Explanation:
The substring with start index = 0 is "cba", which is an anagram of "abc".
The substring with start index = 6 is "bac", which is an anagram of "abc".






Example 2:
Input:
s: "abab" p: "ab"


Output:
[0, 1, 2]


Explanation:
The substring with start index = 0 is "ab", which is an anagram of "ab".
The substring with start index = 1 is "ba", which is an anagram of "ab".
The substring with start index = 2 is "ab", which is an anagram of "ab".




      
****************************我是优雅的分割线************************
485. Max Consecutive Ones||
        Given a binary array, find the maximum number of consecutive 1s in this array.


Example 1:
Input: [1,1,0,1,1,1]
Output: 3
Explanation: The first two digits or the last three digits are consecutive 1s.
    The maximum number of consecutive 1s is 3.






Note:


The input array will only contain 0 and 1.
The length of input array is a positive integer and will not exceed 10,000




      
****************************我是优雅的分割线************************
463. Island Perimeter||
        You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represents water. Grid cells are connected horizontally/vertically (not diagonally). The grid is completely surrounded by water, and there is exactly one island (i.e., one or more connected land cells). The island doesn't have "lakes" (water inside that isn't connected to the water around the island). One cell is a square with side length 1. The grid is rectangular, width and height don't exceed 100. Determine the perimeter of the island.


Example:
[[0,1,0,0],
 [1,1,1,0],
 [0,1,0,0],
 [1,1,0,0]]


Answer: 16
Explanation: The perimeter is the 16 yellow stripes in the image below:






      
****************************我是优雅的分割线************************
492. Construct the Rectangle||
        
For a web developer, it is very important to know how to design a web page's size. So, given a specific rectangular web page’s area, your job by now is to design a rectangular web page, whose length L and width W satisfy the following requirements:1. The area of the rectangular web page you designed must equal to the given target area.
2. The width W should not be larger than the length L, which means L >= W.
3. The difference between length L and width W should be as small as possible.


You need to output the length L and the width W of the web page you designed in sequence.






Example:
Input: 4
Output: [2, 2]
Explanation: The target area is 4, and all the possible ways to construct it are [1,4], [2,2], [4,1]. 
But according to requirement 2, [1,4] is illegal; according to requirement 3,  [4,1] is not optimal compared to [2,2]. So the length L is 2, and the width W is 2.






Note:


The given area won't exceed 10,000,000 and is a positive integer
The web page's width and length you designed must be positive integers.




      
****************************我是优雅的分割线************************
496. Next Greater Element I||
        
You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1's elements in the corresponding places of nums2. 






The Next Greater Number of a number x in nums1 is the first greater number to its right in nums2. If it does not exist, output -1 for this number.




Example 1:
Input: nums1 = [4,1,2], nums2 = [1,3,4,2].
Output: [-1,3,-1]
Explanation:
    For number 4 in the first array, you cannot find the next greater number for it in the second array, so output -1.
    For number 1 in the first array, the next greater number for it in the second array is 3.
    For number 2 in the first array, there is no next greater number for it in the second array, so output -1.






Example 2:
Input: nums1 = [2,4], nums2 = [1,2,3,4].
Output: [3,-1]
Explanation:
    For number 2 in the first array, the next greater number for it in the second array is 3.
    For number 4 in the first array, there is no next greater number for it in the second array, so output -1.








Note:


All elements in nums1 and nums2 are unique.
The length of both nums1 and nums2 would not exceed 1000.




      
****************************我是优雅的分割线************************
506. Relative Ranks||
        
Given scores of N athletes, find their relative ranks and the people with the top three highest scores, who will be awarded medals: "Gold Medal", "Silver Medal" and "Bronze Medal".


Example 1:
Input: [5, 4, 3, 2, 1]
Output: ["Gold Medal", "Silver Medal", "Bronze Medal", "4", "5"]
Explanation: The first three athletes got the top three highest scores, so they got "Gold Medal", "Silver Medal" and "Bronze Medal". For the left two athletes, you just need to output their relative ranks according to their scores.






Note:


N is a positive integer and won't exceed 10,000.
All the scores of athletes are guaranteed to be unique.






      
****************************我是优雅的分割线************************
453. Minimum Moves to Equal Array Elements||
        Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1.


Example:
Input:
[1,2,3]


Output:
3


Explanation:
Only three moves are needed (remember each move increments two elements):


[1,2,3]  =>  [2,3,3]  =>  [3,4,3]  =>  [4,4,4]




      
****************************我是优雅的分割线************************
479. Largest Palindrome Product||
        Find the largest palindrome made from the product of two n-digit numbers.
 Since the result could be very large, you should return the largest palindrome mod 1337.


Example:
Input: 2
Output: 987
Explanation: 99 x 91 = 9009, 9009 % 1337 = 987








Note:
The range of n is [1,8].




      
****************************我是优雅的分割线************************
507. Perfect Number||
        We define the Perfect Number is a positive integer that is equal to the sum of all its positive divisors except itself. 


Now, given an integer n, write a function that returns true when it is a perfect number and false when it is not.




Example:
Input: 28
Output: True
Explanation: 28 = 1 + 2 + 4 + 7 + 14






Note:
The input number n will not exceed 100,000,000. (1e8)


      
****************************我是优雅的分割线************************
532. K-diff Pairs in an Array||
        
Given an array of integers and an integer k, you need to find the number of unique k-diff pairs in the array. Here a k-diff pair is defined as an integer pair (i, j), where i and j are both numbers in the array and their absolute difference is k.






Example 1:
Input: [3, 1, 4, 1, 5], k = 2
Output: 2
Explanation: There are two 2-diff pairs in the array, (1, 3) and (3, 5).Although we have two 1s in the input, we should only return the number of unique pairs.






Example 2:
Input:[1, 2, 3, 4, 5], k = 1
Output: 4
Explanation: There are four 1-diff pairs in the array, (1, 2), (2, 3), (3, 4) and (4, 5).






Example 3:
Input: [1, 3, 1, 5, 4], k = 0
Output: 1
Explanation: There is one 0-diff pair in the array, (1, 1).






Note:


The pairs (i, j) and (j, i) count as the same pair.
The length of the array won't exceed 10,000.
All the integers in the given input belong to the range: [-1e7, 1e7].




      
****************************我是优雅的分割线************************
541. Reverse String II||
        
Given a string and an integer k, you need to reverse the first k characters for every 2k characters counting from the start of the string. If there are less than k characters left, reverse all of them. If there are less than 2k but greater than or equal to k characters, then reverse the first k characters and left the other as original.




Example:
Input: s = "abcdefg", k = 2
Output: "bacdfeg"






Restrictions: 


 The string consists of lower English letters only.
 Length of the given string and k will in the range [1, 10000]


      
****************************我是优雅的分割线************************
500. Keyboard Row||
        Given a List of words, return the words that can be typed using letters of alphabet on only one row's of American keyboard like the image below. 














Example 1:
Input: ["Hello", "Alaska", "Dad", "Peace"]
Output: ["Alaska", "Dad"]






Note:


You may use one character in the keyboard more than once.
You may assume the input string will only contain letters of alphabet.




      
****************************我是优雅的分割线************************
520. Detect Capital||
        
Given a word, you need to judge whether the usage of capitals in it is right or not.






We define the usage of capitals in a word to be right when one of the following cases holds:


All letters in this word are capitals, like "USA".
All letters in this word are not capitals, like "leetcode".
Only the first letter in this word is capital if it has more than one letter, like "Google".


Otherwise, we define that this word doesn't use capitals in a right way.






Example 1:
Input: "USA"
Output: True






Example 2:
Input: "FlaG"
Output: False






Note:
The input will be a non-empty word consisting of uppercase and lowercase latin letters.


      
****************************我是优雅的分割线************************
538. Convert BST to Greater Tree||
        Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST.




Example:
Input: The root of a Binary Search Tree like this:
              5
            /   \
           2     13


Output: The root of a Greater Tree like this:
             18
            /   \
          20     13




      
****************************我是优雅的分割线************************
551. Student Attendance Record I||
        You are given a string representing an attendance record for a student. The record only contains the following three characters:






'A' : Absent. 
'L' : Late.
 'P' : Present. 








A student could be rewarded if his attendance record doesn't contain more than one 'A' (absent) or more than two continuous 'L' (late).    


You need to return whether the student could be rewarded according to his attendance record.


Example 1:
Input: "PPALLP"
Output: True






Example 2:
Input: "PPALLL"
Output: False










      
****************************我是优雅的分割线************************
563. Binary Tree Tilt||
        Given a binary tree, return the tilt of the whole tree.


The tilt of a tree node is defined as the absolute difference between the sum of all left subtree node values and the sum of all right subtree node values. Null node has tilt 0.


The tilt of the whole tree is defined as the sum of all nodes' tilt.


Example:
Input: 
         1
       /   \
      2     3
Output: 1
Explanation: 
Tilt of node 2 : 0
Tilt of node 3 : 0
Tilt of node 1 : |2-3| = 1
Tilt of binary tree : 0 + 0 + 1 = 1






Note:


The sum of node values in any subtree won't exceed the range of 32-bit integer. 
All the tilt values won't exceed the range of 32-bit integer.




      
****************************我是优雅的分割线************************
566. Reshape the Matrix||
        In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new one with different size but keep its original data.






You're given a matrix represented by a two-dimensional array, and two positive integers r and c representing the row number and column number of the wanted reshaped matrix, respectively.


 The reshaped matrix need to be filled with all the elements of the original matrix in the same row-traversing order as they were.






If the 'reshape' operation with given parameters is possible and legal, output the new reshaped matrix; Otherwise, output the original matrix.




Example 1:
Input: 
nums = 
[[1,2],
 [3,4]]
r = 1, c = 4
Output: 
[[1,2,3,4]]
Explanation:The row-traversing of nums is [1,2,3,4]. The new reshaped matrix is a 1 * 4 matrix, fill it row by row by using the previous list.






Example 2:
Input: 
nums = 
[[1,2],
 [3,4]]
r = 2, c = 4
Output: 
[[1,2],
 [3,4]]
Explanation:There is no way to reshape a 2 * 2 matrix to a 2 * 4 matrix. So output the original matrix.






Note:


The height and width of the given matrix is in range [1, 100].
The given r and c are all positive.




      
****************************我是优雅的分割线************************
501. Find Mode in Binary Search Tree||
        Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred element) in the given BST.




Assume a BST is defined as follows:


The left subtree of a node contains only nodes with keys less than or equal to the node's key.
The right subtree of a node contains only nodes with keys greater than or equal to the node's key.
Both the left and right subtrees must also be binary search trees.








For example:
Given BST [1,null,2,2],
   1
    \
     2
    /
   2






return [2].




Note:
If a tree has more than one mode, you can return them in any order.




Follow up:
Could you do that without using any extra space? (Assume that the implicit stack space incurred due to recursion does not count).


      
****************************我是优雅的分割线************************
504. Base 7||
        Given an integer, return its base 7 string representation.


Example 1:
Input: 100
Output: "202"






Example 2:
Input: -7
Output: "-10"






Note:
The input will be in range of [-1e7, 1e7].


      
****************************我是优雅的分割线************************
581. Shortest Unsorted Continuous Subarray||
        Given an integer array, you need to find one continuous subarray that if you only sort this subarray in ascending order, then the whole array will be sorted in ascending order, too.  


You need to find the shortest such subarray and output its length.


Example 1:
Input: [2, 6, 4, 8, 10, 9, 15]
Output: 5
Explanation: You need to sort [6, 4, 8, 10, 9] in ascending order to make the whole array sorted in ascending order.






Note:


Then length of the input array is in range [1, 10,000].
The input array may contain duplicates, so ascending order here means <=. 




      
****************************我是优雅的分割线************************
595. Big Countries||
        There is a table World 
+-----------------+------------+------------+--------------+---------------+
| name            | continent  | area       | population   | gdp           |
+-----------------+------------+------------+--------------+---------------+
| Afghanistan     | Asia       | 652230     | 25500100     | 20343000      |
| Albania         | Europe     | 28748      | 2831741      | 12960000      |
| Algeria         | Africa     | 2381741    | 37100000     | 188681000     |
| Andorra         | Europe     | 468        | 78115        | 3712000       |
| Angola          | Africa     | 1246700    | 20609294     | 100990000     |
+-----------------+------------+------------+--------------+---------------+




A country is big if it has an area of bigger than 3 million square km or a population of more than 25 million.


Write a SQL solution to output big countries' name, population and area.




For example, according to the above table, we should output:
+--------------+-------------+--------------+
| name         | population  | area         |
+--------------+-------------+--------------+
| Afghanistan  | 25500100    | 652230       |
| Algeria      | 37100000    | 2381741      |
+--------------+-------------+--------------+




      
****************************我是优雅的分割线************************
596. Classes More Than 5 Students||
        
There is a table courses with columns: student and class


Please list out all classes which have more than or equal to 5 students.




For example, the table:


+---------+------------+
| student | class      |
+---------+------------+
| A       | Math       |
| B       | English    |
| C       | Math       |
| D       | Biology    |
| E       | Math       |
| F       | Computer   |
| G       | Math       |
| H       | Math       |
| I       | Math       |
+---------+------------+




Should output:
+---------+
| class   |
+---------+
| Math    |
+---------+






Note:
The students should not be counted duplicate in each course.


      
****************************我是优雅的分割线************************
594. Longest Harmonious Subsequence||
        We define a harmonious array is an array where the difference between its maximum value and its minimum value is exactly 1.


Now, given an integer array, you need to find the length of its longest harmonious subsequence among all its possible subsequences.


Example 1:
Input: [1,3,2,2,5,2,3,7]
Output: 5
Explanation: The longest harmonious subsequence is [3,2,2,2,3].






Note:
The length of the input array will not exceed 20,000.






      
****************************我是优雅的分割线************************
543. Diameter of Binary Tree||
        
Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root.






Example:
Given a binary tree 
          1
         / \
        2   3
       / \     
      4   5    






Return 3, which is the length of the path [4,2,1,3] or [5,2,1,3].




Note:
The length of path between two nodes is represented by the number of edges between them.


      
****************************我是优雅的分割线************************
598. Range Addition II||
        Given an m * n matrix M initialized with all 0's and several update operations.
Operations are represented by a 2D array, and each operation is represented by an array with two positive integers a and b, which means M[i][j] should be added by one for all 0 <= i < a and 0 <= j < b. 
You need to count and return the number of maximum integers in the matrix after performing all the operations.


Example 1:
Input: 
m = 3, n = 3
operations = [[2,2],[3,3]]
Output: 4
Explanation: 
Initially, M = 
[[0, 0, 0],
 [0, 0, 0],
 [0, 0, 0]]


After performing [2,2], M = 
[[1, 1, 0],
 [1, 1, 0],
 [0, 0, 0]]


After performing [3,3], M = 
[[2, 2, 1],
 [2, 2, 1],
 [1, 1, 1]]


So the maximum integer in M is 2, and there are four of it in M. So return 4.






Note:


The range of m and n is [1,40000].
The range of a is [1,m], and the range of b is [1,n].
The range of operations size won't exceed 10,000.




      
****************************我是优雅的分割线************************
521. Longest Uncommon Subsequence I||
        
Given a group of two strings, you need to find the longest uncommon subsequence of this group of two strings.
The longest uncommon subsequence is defined as the longest subsequence of one of these strings and this subsequence should not be any subsequence of the other strings.






A subsequence is a sequence that can be derived from one sequence by deleting some characters without changing the order of the remaining elements. Trivially, any string is a subsequence of itself and an empty string is a subsequence of any string.






The input will be two strings, and the output needs to be the length of the longest uncommon subsequence. If the longest uncommon subsequence doesn't exist, return -1.




Example 1:
Input: "aba", "cdc"
Output: 3
Explanation: The longest uncommon subsequence is "aba" (or "cdc"), because "aba" is a subsequence of "aba", but not a subsequence of any other strings in the group of two strings. 






Note:


Both strings' lengths will not exceed 100.
Only letters from a ~ z will appear in input strings. 




      
****************************我是优雅的分割线************************
599. Minimum Index Sum of Two Lists||
        
Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of favorite restaurants represented by strings. 




You need to help them find out their common interest with the least list index sum. If there is a choice tie between answers, output all of them with no order requirement. You could assume there always exists an answer.






Example 1:
Input:
["Shogun", "Tapioca Express", "Burger King", "KFC"]
["Piatti", "The Grill at Torrey Pines", "Hungry Hunter Steakhouse", "Shogun"]
Output: ["Shogun"]
Explanation: The only restaurant they both like is "Shogun".






Example 2:
Input:
["Shogun", "Tapioca Express", "Burger King", "KFC"]
["KFC", "Shogun", "Burger King"]
Output: ["Shogun"]
Explanation: The restaurant they both like and have the least index sum is "Shogun" with index sum 1 (0+1).








Note:


The length of both lists will be in the range of [1, 1000].
The length of strings in both lists will be in the range of [1, 30].
The index is starting from 0 to the list length minus 1.
No duplicates in both lists.




      
****************************我是优雅的分割线************************
605. Can Place Flowers||
        Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, flowers cannot be planted in adjacent plots - they would compete for water and both would die.


Given a flowerbed (represented as an array containing 0 and 1, where 0 means empty and 1 means not empty), and a number n, return if n new flowers can be planted in it without violating the no-adjacent-flowers rule.


Example 1:
Input: flowerbed = [1,0,0,0,1], n = 1
Output: True






Example 2:
Input: flowerbed = [1,0,0,0,1], n = 2
Output: False






Note:


The input array won't violate no-adjacent-flowers rule.
The input array size is in the range of [1, 20000].
n is a non-negative integer which won't exceed the input array size.




      
****************************我是优雅的分割线************************
572. Subtree of Another Tree||
        
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 of this node's descendants. The tree s could also be considered as a subtree of itself.




Example 1:


Given tree s:
     3
    / \
   4   5
  / \
 1   2


Given tree t:
   4 
  / \
 1   2


Return true, because t has the same structure and node values with a subtree of s.




Example 2:


Given tree s:
     3
    / \
   4   5
  / \
 1   2
    /
   0


Given tree t:
   4
  / \
 1   2


Return false.


      
****************************我是优雅的分割线************************
561. Array Partition I||
        
Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1, b1), (a2, b2), ..., (an, bn) which makes sum of min(ai, bi) for all i from 1 to n as large as possible.




Example 1:
Input: [1,4,3,2]


Output: 4
Explanation: n is 2, and the maximum sum of pairs is 4 = min(1, 2) + min(3, 4).






Note:


n is a positive integer, which is in the range of [1, 10000].
All the integers in the array will be in the range of [-10000, 10000].




      
****************************我是优雅的分割线************************
617. Merge Two Binary Trees||
        
Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. 




You need to merge them into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of new tree.






Example 1:
Input: 
Tree 1                     Tree 2                  
          1                         2                             
         / \                       / \                            
        3   2                     1   3                        
       /                           \   \                      
      5                             4   7                  
Output: 
Merged tree:
     3
    / \
   4   5
  / \   \ 
5   4   7








Note:
The merging process must start from the root nodes of both trees.




      
****************************我是优雅的分割线************************
530. Minimum Absolute Difference in BST||
        Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.




Example:
Input:


   1
    \
     3
    /
   2


Output:
1


Explanation:
The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3).








Note:
There are at least two nodes in this BST.


      
****************************我是优雅的分割线************************
575. Distribute Candies||
        Given an integer array with even length, where different numbers in this array represent different kinds of candies. Each number means one candy of the corresponding kind. You need to distribute these candies equally in number to brother and sister. Return the maximum number of kinds of candies the sister could gain. 


Example 1:
Input: candies = [1,1,2,2,3,3]
Output: 3
Explanation:
There are three different kinds of candies (1, 2 and 3), and two candies for each kind.
Optimal distribution: The sister has candies [1,2,3] and the brother has candies [1,2,3], too. 
The sister has three different kinds of candies. 






Example 2:
Input: candies = [1,1,2,3]
Output: 2
Explanation: For example, the sister has candies [2,3] and the brother has candies [1,1]. 
The sister has two different kinds of candies, the brother has only one kind of candies. 






Note:


The length of the given array is in range [2, 10,000], and will be even.
The number in given array is in range [-100,000, 100,000].




      
****************************我是优雅的分割线************************
620. Not Boring Movies||
        X city opened a new cinema, many people would like to go to this cinema.
The cinema also gives out a poster indicating the movies’ ratings and descriptions. 
 
Please write a SQL query to output movies with an odd numbered ID and a description that is not 'boring'. Order the result by rating.




For example, table cinema:
+---------+-----------+--------------+-----------+
|   id    | movie     |  description |  rating   |
+---------+-----------+--------------+-----------+
|   1     | War       |   great 3D   |   8.9     |
|   2     | Science   |   fiction    |   8.5     |
|   3     | irish     |   boring     |   6.2     |
|   4     | Ice song  |   Fantacy    |   8.6     |
|   5     | House card|   Interesting|   9.1     |
+---------+-----------+--------------+-----------+


For the example above, the output should be:
+---------+-----------+--------------+-----------+
|   id    | movie     |  description |  rating   |
+---------+-----------+--------------+-----------+
|   5     | House card|   Interesting|   9.1     |
|   1     | War       |   great 3D   |   8.9     |
+---------+-----------+--------------+-----------+




      
****************************我是优雅的分割线************************
627. Swap Salary||
        Given a table salary, such as the one below, that has m=male and  f=female values. Swap all f and m values (i.e., change all f values to m and vice versa) with a single update query and no intermediate temp table.
 
For example:
 
| id | name | sex | salary |
|----|------|-----|--------|
| 1  | A    | m   | 2500   |
| 2  | B    | f   | 1500   |
| 3  | C    | m   | 5500   |
| 4  | D    | f   | 500    |


After running your query, the above salary table should have the following rows:
| id | name | sex | salary |
|----|------|-----|--------|
| 1  | A    | f   | 2500   |
| 2  | B    | m   | 1500   |
| 3  | C    | f   | 5500   |
| 4  | D    | m   | 500    |




      
****************************我是优雅的分割线************************
476. Number Complement||
        Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.


Note:


The given integer is guaranteed to fit within the range of a 32-bit signed integer.
You could assume no leading zero bit in the integer’s binary representation.






Example 1:
Input: 5
Output: 2
Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.






Example 2:
Input: 1
Output: 0
Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.




      
****************************我是优雅的分割线************************
557. Reverse Words in a String III||
        Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.


Example 1:
Input: "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"






Note:
In the string, each word is separated by single space and there will not be any extra space in the string.


      
****************************我是优雅的分割线************************
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: 6






Example 2:
Input: [1,2,3,4]
Output: 24






Note:


The length of the given array will be in range [3,104] and all elements are in the range [-1000, 1000].
Multiplication of any three numbers in the input won't exceed the range of 32-bit signed integer.




      
****************************我是优雅的分割线************************
606. Construct String from Binary Tree||
        You need to construct a string consists of parenthesis and integers from a binary tree with the preorder traversing way.


The null node needs to be represented by empty parenthesis pair "()". And you need to omit all the empty parenthesis pairs that don't affect the one-to-one mapping relationship between the string and the original binary tree.


Example 1:
Input: Binary tree: [1,2,3,4]
       1
     /   \
    2     3
   /    
  4     


Output: "1(2(4))(3)"
Explanation: Originallay it needs to be "1(2(4)())(3()())", but you need to omit all the unnecessary empty parenthesis pairs. And it will be "1(2(4))(3)".






Example 2:
Input: Binary tree: [1,2,3,null,4]
       1
     /   \
    2     3
     \  
      4 


Output: "1(2()(4))(3)"
Explanation: Almost the same as the first example, except we can't omit the first parenthesis pair to break the one-to-one mapping relationship between the input and the output.




      
****************************我是优雅的分割线************************
643. Maximum Average Subarray I||
        
Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum average value. And you need to output the maximum average value.




Example 1:
Input: [1,12,-5,-6,50,3], k = 4
Output: 12.75
Explanation: Maximum average is (12-5-6+50)/4 = 51/4 = 12.75






Note:


1 <= k <= n <= 30,000.
Elements of the given array will be in the range [-10,000, 10,000].




      
****************************我是优雅的分割线************************
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 to another number in the set, which results in repetition of one number and loss of another number. 






Given an array nums representing the data status of this set after the error. Your task is to firstly find the number occurs twice and then find the number that is missing. Return them in the form of an array.






Example 1:
Input: nums = [1,2,2,4]
Output: [2,3]






Note:


The given array size will in the range [2, 10000].
The given array's numbers won't have any order.




      
****************************我是优雅的分割线************************
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
 / \   \
2   4   7


Target = 9


Output: True








Example 2:
Input: 
    5
   / \
  3   6
 / \   \
2   4   7


Target = 28


Output: False








      
****************************我是优雅的分割线************************
633. Sum of Square Numbers||
        
Given a non-negative integer c, your task is to decide whether there're two integers a and b such that a2 + b2 = c.




Example 1:
Input: 5
Output: True
Explanation: 1 * 1 + 2 * 2 = 5








Example 2:
Input: 3
Output: False






      
****************************我是优雅的分割线************************
661. Image Smoother||
        Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down) of all the 8 surrounding cells and itself.  If a cell has less than 8 surrounding cells, then use as many as you can.


Example 1:
Input:
[[1,1,1],
 [1,0,1],
 [1,1,1]]
Output:
[[0, 0, 0],
 [0, 0, 0],
 [0, 0, 0]]
Explanation:
For the point (0,0), (0,2), (2,0), (2,2): floor(3/4) = floor(0.75) = 0
For the point (0,1), (1,0), (1,2), (2,1): floor(5/6) = floor(0.83333333) = 0
For the point (1,1): floor(8/9) = floor(0.88888889) = 0






Note:


The value in the given matrix is in the range of [0, 255].
The length and width of the given matrix are in the range of [1, 150].




      
****************************我是优雅的分割线************************
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 to the original place. 






The move sequence is represented by a string. And each move is represent by a character. The valid robot moves are R (Right), L (Left), U (Up) and D (down). The output should be true or false representing whether the robot makes a circle.




Example 1:
Input: "UD"
Output: true






Example 2:
Input: "LL"
Output: false




      
****************************我是优雅的分割线************************
637. Average of Levels in Binary Tree||
        Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array.


Example 1:
Input:
    3
   / \
  9  20
    /  \
   15   7
Output: [3, 14.5, 11]
Explanation:
The average value of nodes on level 0 is 3,  on level 1 is 14.5, and on level 2 is 11. Hence return [3, 14.5, 11].






Note:


The range of node's value is in the range of 32-bit signed integer.




      
【简单】力扣算法题解析LeetCode175:组合两个表 这篇SQL题解要求查询人员信息及其地址,若地址不存在则显示NULL。 该题目需要从Person表和Address表中联合查询每个人的姓名和地址信息。解题使用LEFT JOIN操作,确保保留Person表中的所有记录,当Address表中无匹配时自动填充NULL值。SQL语句简洁高效,通过主键关联实现最优索引利用,仅需一次表扫描即可完成数据匹配。最终输出包含firstName、lastName、city和state字段,其中缺失的地址信息显示为NULL。这种方法既保证了数据完整性又具有良好性能。 阅读详情

相关推荐

【简单】力扣算法题解析LeetCode195:第十行

本文介绍三种方法打印文本文件的第十行,重点推荐awk高效方案:1) awk通过行号匹配即时终止处理;2) head+tail组合提取前10行的末行;3) sed全扫描打印第十行。测试表明awk方案(时间4ms/内存3.4MB)最优,仅处理前10行。适用于大文件场景,边缘情况自动处理。附完整代码与效率对比。核心结论:awk 'NR==10{print;exit}'兼具高效性与简洁性,是Shell处理行提取任务的首选方案。

ylumwd的博客 351

LeetCode—Top100简单题共21道

1. 两数之和 – 剑指offer57-I ​ 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 ​ 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 方法一:两个for循环 class Solution { publi

qq_40574305的博客 2517

【简单】力扣算法题解析LeetCode197:上升的温度

题目要求找出比前一天温度更高的日期ID。通过自连接Weather表,匹配当天与前一天记录(日期相差1天),筛选温度升高的记录。关键步骤:1)自连接表;2)用DATE_ADD确保日期差为1天;3)比较温度。建议在recordDate列创建索引优化性能。示例输出显示ID 2和4满足条件(25>10,30>20)。

ylumwd的博客 371

【LeetCode】算法题汇总_思路+代码注释

【代码】【LeetCode】算法题汇总。

yyj3900636的博客 1432

【简单】力扣算法题解析LeetCode160:相交链表

本文介绍了一种高效寻找两个无环单链表相交节点的方法,采用双指针遍历算法。核心思想是通过让两个指针分别遍历两个链表并在到达末尾时切换到对方链表头部,最终在相交节点相遇或同时到达链表末尾(表示不相交)。该方法时间复杂度为O(m+n),空间复杂度为O(1)。文章提供了Java实现代码,并通过示例图解说明了算法的正确性和边界条件处理。

ylumwd的博客 920

【简单】力扣算法题解析LeetCode66:加一

文章解析讨论了一个将大整数数组加1的算法问题。文章首先分析了三种情况:无进位、进位和全9的特殊处理,然后提出了从末位遍历并处理进位的解决方案。Java代码实现了该逻辑,通过遍历数组处理进位,全9时新建数组。时间复杂度和空间复杂度均为O(n),最坏情况下需遍历整个数组或创建新数组。文章最后提供了代码执行详情和进一步学习的方式。

ylumwd的博客 1037

leetcode - 103道入门基础题

一、leetcode - 字符串 二、leetcode - 二进制、数学类 三、leetcode - 数组 四、leetcode - 二分查找 五、leetcode - 快慢指针 六、leetcode - 滑动窗口 七、leetcode - 矩阵 八、leetcode - 栈和队列 九、leetcode - 链表 十、leetcode - 二叉树 十一、leetcode - 并查集 十二、leetcode - 回溯 十三、leetcode - 动态规划 十四、leetcode - 贪心 一、leetcode

seaalan的博客 2074

逆向解析M团外卖mtgsig与waimai_sign加密参数实战指南⊙ω⊙

本文详细解析了M团外卖App中mtgsig与waimai_sign两个核心加密参数的逆向分析与生成方法。通过抓包定位、静态逆向与Frida动态调试,拆解了waimai_sign的RSA签名逻辑与mtgsig的复杂参数组装加密流程,并提供了Python模拟实现的框架与调试心得,为安全研究及合规数据分析提供实战指南。

weixin_29327525的博客 1285

LeetCode小白入门——简单题目八题合集,每题两解

本文共包括八个题目,来源于LeetCode简单难度,每个问题会给出两种解法,第一种偏暴力、易理解一些,第二种会更加高效一些,尽可能会避免利用Python的内置函数,便于真正理解算法原理。 来源:LeetCode(力扣) 链接:https://leetcode-cn.com/problemset/all/?difficulty=%E7%AE%80%E5%8D%95 1.两数之和 题目描述:给定一...

weixin_43434202的博客 3072

基于Super-Jacoco的精准测试实践之路

灵魂拷问这个版本的影响范围到底有多大?研发改动了代码,为什么不通知测试?测试用例真的全面覆盖了吗?测试同学的测试覆盖情况该怎么评估?什么是精准测试概念借助技术手段、通过辅助算法对软件测试过...

咻咻ing的专栏 5843

基于LSTM语义分析的企业风险预测系统

在数字化时代,企业面临着前所未有的挑战和机遇,而风险管理作为确保企业稳定发展的关键一环,其重要性日益凸显。为了及时、准确地监测和分析企业相关的风险,并预测可能带来的风险,本文介绍了一种基于长短期记忆(LSTM)语义分析的企业风险预测系统。该系统利用深度学习技术,通过将收集到的企业数据进行预处理和分析,结合LSTM模型对文本进行深度语义分析,从而实现对潜在风险的预测和评估。系统设计方面,该系统包括数据预处理、LSTM模型构建与训练、风险预测以及可视化展示等模块。

qiufangtaowvnyyidtf的博客 1393

力扣算法题(Leetcode)整数反转【简单】

力扣算法题(Leetcode)整数反转【简单】 题目描述: 给定一个int 类型数字 x 例如 123 - 324 返回整数类型的反转例如 321 -423 限制条件返回数字的类型也是int 并且 x ->(-2^31, 2^31-1) 输入的数字是32位的整数,如果遇到64位整数返回0 0返回0 解体思路: 利用char[]数字获取数字的每一位,然后反转char数组,随后toString最后Integer.parseInt() 核心代码如下

ankewlin的博客 983

RK3588视频转码实战:如何用FFmpeg+MPP实现16路1080P硬解压(附完整命令)

本文详细介绍了如何在RK3588处理器上使用FFmpeg和MPP框架实现16路1080P视频的硬件加速转码。通过解析RK3588的视频处理架构、环境搭建步骤和实战配置,提供了完整的命令示例和性能调优建议,帮助开发者高效处理多路视频转码任务。

weixin_29233333的博客 556

【简单】力扣算法题解析LeetCode232:用栈实现队列

本文介绍如何用两个栈实现队列功能,支持push、pop、peek和empty操作。通过inStack和outStack分工协作,push操作直接压入inStack,而pop和peek操作在outStack为空时将inStack元素倒序转移,确保队列的FIFO特性。

ylumwd的博客 998

Databricks Genie:语义编译器架构与企业级智能解析实践

语义层是现代数据平台实现自然语言查询的核心基础,其本质是将业务术语映射为可执行、可治理的数据契约。原理上依赖结构化元数据、值字典与数据血缘三支柱协同,通过分层AI代理(如Intent Parsing、Retriever、Verifier)实现意图识别→语义对齐→安全执行的闭环。技术价值在于降低SQL使用门槛的同时保障审计性、一致性和权限可控性,适用于销售运营、财务分析等一线业务场景。本文深入解析Databricks Genie作为典型语义编译器的落地逻辑,涵盖Unity Catalog知识注入、七层Agen

weixin_29053695的博客 338

OpenClaw-遇到的问题- FailoverError: Model context window too small (4096 tokens). Minimum is 16000

摘要:OpenClaw配置文件中deepseek-reasoner模型的上下文窗口被默认设置为4096 tokens(实际支持128K),导致系统报错"Model context window too small"。解决方案是删除配置文件中的contextWindow和maxTokens字段,让系统自动获取模型真实能力,并重启OpenClaw服务。配置文件通常位于用户目录下的.openclaw/openclaw.json中。

直到世界的尽头 4165

【简单】力扣算法题解析LeetCode383:赎金信

LeetCode 383. 赎金信题解 问题核心:判断ransomNote字符串能否由magazine中的字符组成(区分大小写,字符不可重复使用) 解题要点: 边界处理:若ransomNote长度>magazine,直接false 使用26位数组统计magazine字符频次 遍历ransomNote递减频次,若出现负值则false 时间复杂度O(m+n),空间复杂度O(1) 代码亮点: 字符映射:c-'a'转为0-25索引 提前终止:频次不足时立即返回

ylumwd的博客 1556

基于Python的智能动漫更新监控爬虫系统:从原理到实战

本文详细介绍了如何使用Python构建一个智能化的动漫更新监控系统,涵盖从基础爬虫到高级自动化监控的全套解决方案。文章将深入探讨最新的网络爬虫技术,包括异步请求、反反爬策略、智能解析算法等,并提供完整的代码实现和性能优化方案。通过本系统,用户可以实时获取多个动漫平台的更新信息,并通过多种渠道接收通知。关键词:Python爬虫、动漫监控、自动化通知、异步爬虫、反反爬策略。

2201_76125261的博客 902

【简单】力扣算法题解析LeetCode338:比特位计数

LeetCode 338要求生成0到n的二进制中1的个数数组。需满足: 时间复杂度O(n),空间复杂度O(n); 禁止调用内置函数,需手动实现位计数; 动态规划解法:利用i & (i-1)递推,bits[i] = bits[i & (i-1)] + 1; 边界处理:n=0时输出[0],n=5时输出[0,1,1,2,1,2]。 核心思路 通过位运算性质优化计算:每个数的1的个数等于其最低有效位清零后的结果加1。Java实现仅需一次遍历,高效准确。

ylumwd的博客 1555

基于单光子探测的高重频多通道符合测距

TDC专栏之基于单光子探测的高重频多通道符合测距

sdau2005的博客 1204

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【简单】力扣算法题解析LeetCode290:单词规律

字符串模式匹配 判断字符串 s 的单词是否遵循 pattern 的字符规律,要求字符与单词双向一一对应。 思路: 分割 s 为单词数组,校验长度是否匹配 pattern。 维护两个哈希表:字符→单词 和 单词→字符。 遍历时检查: 若字符已映射,需匹配当前单词; 若单词被其他字符映射,返回 false; 否则建立双向映射。 代码亮点: 提前长度校验提升效率

ylumwd的博客 636

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【简单】力扣算法题解析LeetCode263:丑数

丑数判断算法解析 该算法通过循环去除给定数字n的所有2、3、5质因数,最终检查剩余值是否为1来判断丑数性质。关键步骤包括: 边界处理:直接排除非正整数 循环整除:依次用2、3、5进行连续整除操作 结果验证:若最终结果为1则是丑数 实现采用O(log n)时间复杂度和O(1)空间复杂度,高效简洁。Java版代码通过三个独立while循环完成质因数消除,最后返回n==1的判断结果。

ylumwd的博客 451

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【简单】力扣算法题解析LeetCode252:会议室

本文介绍了如何判断一个人能否参加所有会议(即会议时间是否冲突)。通过将会议按开始时间排序,然后检查相邻会议是否存在时间重叠(后一会议开始时间早于前一会议结束时间),即可确定是否存在冲突。算法时间复杂度为O(n log n),空间复杂度为O(1)。附Java代码实现,包含边界处理和排序逻辑

ylumwd的博客 718

【简单】力扣算法题解析LeetCode203移除链表元素

题目要求删除链表中所有值为val的节点,返回新头节点。解题分两步:1)循环跳过值为val的头节点;2)遍历链表,通过修改指针跳过待删节点。Java实现中,使用curr指针处理后续节点,确保连续待删节点被正确跳过。边界情况(如空链表或全删除)已处理。代码效率高,时间复杂度O(n)。 关键词:链表操作、节点删除、Java实现、指针修改、边界处理

ylumwd的博客 844

【简单】力扣算法题解析LeetCode231:2 的幂

判断整数 n 是否为 2 的幂次方,可通过二进制特性快速验证。若 n 为正数且其二进制表示仅含一个 1(如 1, 2, 4, 8 对应 1, 10, 100, 1000),则满足条件。使用位运算 n & (n - 1) == 0 可消除最低位的 1,结果为 0 即成立。算法时间复杂度为 O(1),代码仅需一行:return n > 0 && (n & (n - 1)) == 0

ylumwd的博客 609

【简单】力扣算法题解析LeetCode234:回文链表

题目要求判断单链表是否为回文结构。解法采用快慢指针找中间节点,反转后半部分链表,再比较前后部分。关键步骤包括: 快慢指针定位中间节点; 反转后半部分链表; 双指针遍历比较节点值; 恢复原链表结构。 时间复杂度O(n),空间复杂度O(1)。代码实现通过边界处理、链表反转和恢复确保高效性。 核心优化:快慢指针+局部反转,避免额外空间消耗。

ylumwd的博客 1541
上一篇: CentOS 7.2防火墙
下一篇: 职场总结
拿我格子衫来
拿我格子衫来 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄10年 6万+粉丝 858原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿我格子衫来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值