leetcode 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.
leetcode Top K Frequent Elements
leetcode Top K Frequent Elements
Given a non-empty array of integers, return the k most frequent elements.
For example, Given
[1,1,1,2,2,3]
and k = 2, return[1,2]
.Note:
- You may assume k is always valid, 1 ≤ k ≤ number of unique elements.
- Your algorithm's time complexity must be better than O(n log n), where n is the array's size.
leetcode 344 Reverse String || leetcode 345 Reverse Vowels of a String
leetcode Reverse String
Write a function that takes a string as input and returns the string reversed.
Example: Given s = "hello", return "olleh".
leetcode Integer Break
leetcode Integer Break
Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get.
For example, given n = 2, return 1 (2 = 1 + 1); given n = 10, return 36 (10 = 3 + 3 + 4).
Note: you may assume that n is not less than 2.
leetcode Power of Four
leetcode 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?
leetcode Counting Bits
leetcode Counting Bits
Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary representation and return them as an array.
Example: For
num = 5
you should return[0,1,1,2,1,2]
.Follow up:
- It is very easy to come up with a solution with run time **O(n*sizeof(integer)). But can you do it in linear time O(n)** /possibly in a single pass?
- Space complexity should be O(n).
- Can you do it like a boss? Do it without using any builtin function like **__builtin_popcount** in c++ or in any other language.
leetcode House Robber III
leetcode House Robber III
The thief has found himself a new place for his thievery again. There is only one entrance to this area, called the "root." Besides the root, each house has one and only one parent house. After a tour, the smart thief realized that "all houses in this place forms a binary tree". It will automatically contact the police if two directly-linked houses were broken into on the same night.
Determine the maximum amount of money the thief can rob tonight without alerting the police.
Example 1:
1
2
3
4
5 3
/ \
2 3
\ \
3 1Maximum amount of money the thief can rob = 3 + 3 + 1 = 7.
Example 2:
1
2
3
4
5 3
/ \
4 5
/ \ \
1 3 1Maximum amount of money the thief can rob = 4 + 5 = 9.
leetcode Self Crossing
leetcode Self Crossing
You are given an array x of
n
positive numbers. You start at point(0,0)
and movesx[0]
metres to the north, thenx[1]
metres to the west,x[2]
metres to the south,x[3]
metres to the east and so on. In other words, after each move your direction changes counter-clockwise.Write a one-pass algorithm with
O(1)
extra space to determine, if your path crosses itself, or not.Example 1: Given x =
[2, 1, 1, 2]
Returntrue
(self crossing) Example 2: Given x =[1, 2, 3, 4]
Returnfalse
(not self crossing) Example 3: Given x =[1, 1, 1, 1]
Returntrue
(self crossing)
leetcode Increasing Triplet Subsequence
leetcode Increasing Triplet Subsequence
Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array.
Formally the function should:
Return true if there exists i, j, k such that arr[i] < arr[j] < arr[k] given 0 ≤ i < j < k ≤ n-1 else return false.Your algorithm should run in O(n) time complexity and O(1) space complexity.
Examples: Given
[1, 2, 3, 4, 5]
, returntrue
.Given
[5, 4, 3, 2, 1]
, returnfalse
.
leetcode Reconstruct Itinerary
leetcode Reconstruct Itinerary
Given a list of airline tickets represented by pairs of departure and arrival airports
[from, to]
, reconstruct the itinerary in order. All of the tickets belong to a man who departs fromJFK
. Thus, the itinerary must begin withJFK
.Note:
- If there are multiple valid itineraries, you should return the itinerary that has the smallest lexical order when read as a single string. For example, the itinerary
["JFK", "LGA"]
has a smaller lexical order than["JFK", "LGB"]
.- All airports are represented by three capital letters (IATA code).
- You may assume all tickets may form at least one valid itinerary.
Example 1:
tickets
=[["MUC", "LHR"], ["JFK", "MUC"], ["SFO", "SJC"], ["LHR", "SFO"]]
Return["JFK", "MUC", "LHR", "SFO", "SJC"]
.Example 2:
tickets
=[["JFK","SFO"],["JFK","ATL"],["SFO","ATL"],["ATL","JFK"],["ATL","SFO"]]
Return["JFK","ATL","JFK","SFO","ATL","SFO"]
. Another possible reconstruction is["JFK","SFO","ATL","JFK","ATL","SFO"]
. But it is larger in lexical order.