2024-05-30
1442. Count Triplets That Can Form Two Arrays of Equal XOR
Topic: Array, Hash Table, Math, Bit Manipulation, Prefix Sum
Difficulty: Medium
Problem:
Given an array of integers
We want to select three indices
Let's define
•
•
Note that ^ denotes the bitwise-xor operation.
Return the number of triplets (
Example 1:
Example 2:
Constraints:
•
•
1442. Count Triplets That Can Form Two Arrays of Equal XOR
Topic: Array, Hash Table, Math, Bit Manipulation, Prefix Sum
Difficulty: Medium
Problem:
Given an array of integers
arr.We want to select three indices
i, j and k where (0 <= i < j <= k < arr.length).Let's define
a and b as follows:•
a = arr[i] ^ arr[i + 1] ^ ... ^ arr[j - 1]•
b = arr[j] ^ arr[j + 1] ^ ... ^ arr[k]Note that ^ denotes the bitwise-xor operation.
Return the number of triplets (
i, j and k) Where a == b.Example 1:
Input: arr = [2,3,1,6,7]
Output: 4
Explanation: The triplets are (0,1,2), (0,2,2), (2,3,4) and (2,4,4)
Example 2:
Input: arr = [1,1,1,1,1]
Output: 10
Constraints:
•
1 <= arr.length <= 300•
1 <= arr[i] <= 10^82024-05-31
260. Single Number III
Topic: Array, Bit Manipulation
Difficulty: Medium
Problem:
Given an integer array
You must write an algorithm that runs in linear runtime complexity and uses only constant extra space.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
• Each integer in
260. Single Number III
Topic: Array, Bit Manipulation
Difficulty: Medium
Problem:
Given an integer array
nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once. You can return the answer in any order.You must write an algorithm that runs in linear runtime complexity and uses only constant extra space.
Example 1:
Input: nums = [1,2,1,3,2,5]
Output: [3,5]
Explanation: [5, 3] is also a valid answer.
Example 2:
Input: nums = [-1,0]
Output: [-1,0]
Example 3:
Input: nums = [0,1]
Output: [1,0]
Constraints:
•
2 <= nums.length <= 3 * 10^4•
-2^31 <= nums[i] <= 2^31 - 1• Each integer in
nums will appear twice, only two integers will appear once.2024-06-01
3110. Score of a String
Topic: String
Difficulty: Easy
Problem:
You are given a string
Return the score of
Example 1:
Input: s = "hello"
Output: 13
Explanation:
The ASCII values of the characters in
Example 2:
Input: s = "zaz"
Output: 50
Explanation:
The ASCII values of the characters in
Constraints:
•
•
3110. Score of a String
Topic: String
Difficulty: Easy
Problem:
You are given a string
s. The score of a string is defined as the sum of the absolute difference between the ASCII values of adjacent characters.Return the score of
s.Example 1:
Input: s = "hello"
Output: 13
Explanation:
The ASCII values of the characters in
s are: 'h' = 104, 'e' = 101, 'l' = 108, 'o' = 111. So, the score of s would be |104 - 101| + |101 - 108| + |108 - 108| + |108 - 111| = 3 + 7 + 0 + 3 = 13.Example 2:
Input: s = "zaz"
Output: 50
Explanation:
The ASCII values of the characters in
s are: 'z' = 122, 'a' = 97. So, the score of s would be |122 - 97| + |97 - 122| = 25 + 25 = 50.Constraints:
•
2 <= s.length <= 100•
s consists only of lowercase English letters.2024-06-02
344. Reverse String
Topic: Two Pointers, String
Difficulty: Easy
Problem:
Write a function that reverses a string. The input string is given as an array of characters
You must do this by modifying the input array in-place with
Example 1:
Example 2:
Constraints:
•
•
344. Reverse String
Topic: Two Pointers, String
Difficulty: Easy
Problem:
Write a function that reverses a string. The input string is given as an array of characters
s.You must do this by modifying the input array in-place with
O(1) extra memory.Example 1:
Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Example 2:
Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]
Constraints:
•
1 <= s.length <= 10^5•
s[i] is a printable ascii character.2024-06-03
2486. Append Characters to String to Make Subsequence
Topic: Two Pointers, String, Greedy
Difficulty: Medium
Problem:
You are given two strings
Return the minimum number of characters that need to be appended to the end of
A subsequence is a string that can be derived from another string by deleting some or no characters without changing the order of the remaining characters.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
2486. Append Characters to String to Make Subsequence
Topic: Two Pointers, String, Greedy
Difficulty: Medium
Problem:
You are given two strings
s and t consisting of only lowercase English letters.Return the minimum number of characters that need to be appended to the end of
s so that t becomes a subsequence of s.A subsequence is a string that can be derived from another string by deleting some or no characters without changing the order of the remaining characters.
Example 1:
Input: s = "coaching", t = "coding"
Output: 4
Explanation: Append the characters "ding" to the end of s so that s = "coachingding".
Now, t is a subsequence of s ("coachingding").
It can be shown that appending any 3 characters to the end of s will never make t a subsequence.
Example 2:
Input: s = "abcde", t = "a"
Output: 0
Explanation: t is already a subsequence of s ("abcde").
Example 3:
Input: s = "z", t = "abcde"
Output: 5
Explanation: Append the characters "abcde" to the end of s so that s = "zabcde".
Now, t is a subsequence of s ("zabcde").
It can be shown that appending any 4 characters to the end of s will never make t a subsequence.
Constraints:
•
1 <= s.length, t.length <= 10^5•
s and t consist only of lowercase English letters.2024-06-04
409. Longest Palindrome
Topic: Hash Table, String, Greedy
Difficulty: Easy
Problem:
Given a string
Letters are case sensitive, for example,
Example 1:
Example 2:
Constraints:
•
•
409. Longest Palindrome
Topic: Hash Table, String, Greedy
Difficulty: Easy
Problem:
Given a string
s which consists of lowercase or uppercase letters, return the length of the longest palindrome that can be built with those letters.Letters are case sensitive, for example,
"Aa" is not considered a palindrome.Example 1:
Input: s = "abccccdd"
Output: 7
Explanation: One longest palindrome that can be built is "dccaccd", whose length is 7.
Example 2:
Input: s = "a"
Output: 1
Explanation: The longest palindrome that can be built is "a", whose length is 1.
Constraints:
•
1 <= s.length <= 2000•
s consists of lowercase and/or uppercase English letters only.2024-06-05
1002. Find Common Characters
Topic: Array, Hash Table, String
Difficulty: Easy
Problem:
Given a string array
Example 1:
Example 2:
Constraints:
•
•
•
1002. Find Common Characters
Topic: Array, Hash Table, String
Difficulty: Easy
Problem:
Given a string array
words, return an array of all characters that show up in all strings within the words (including duplicates). You may return the answer in any order.Example 1:
Input: words = ["bella","label","roller"]
Output: ["e","l","l"]
Example 2:
Input: words = ["cool","lock","cook"]
Output: ["c","o"]
Constraints:
•
1 <= words.length <= 100•
1 <= words[i].length <= 100•
words[i] consists of lowercase English letters.2024-06-06
846. Hand of Straights
Topic: Array, Hash Table, Greedy, Sorting
Difficulty: Medium
Problem:
Alice has some number of cards and she wants to rearrange the cards into groups so that each group is of size
Given an integer array
Example 1:
Example 2:
Constraints:
•
•
•
Note: This question is the same as 1296: <https://leetcode.com/problems/divide-array-in-sets-of-k-consecutive-numbers/>
846. Hand of Straights
Topic: Array, Hash Table, Greedy, Sorting
Difficulty: Medium
Problem:
Alice has some number of cards and she wants to rearrange the cards into groups so that each group is of size
groupSize, and consists of groupSize consecutive cards.Given an integer array
hand where hand[i] is the value written on the i^th card and an integer groupSize, return true if she can rearrange the cards, or false otherwise.Example 1:
Input: hand = [1,2,3,6,2,3,4,7,8], groupSize = 3
Output: true
Explanation: Alice's hand can be rearranged as [1,2,3],[2,3,4],[6,7,8]
Example 2:
Input: hand = [1,2,3,4,5], groupSize = 4
Output: false
Explanation: Alice's hand can not be rearranged into groups of 4.
Constraints:
•
1 <= hand.length <= 10^4•
0 <= hand[i] <= 10^9•
1 <= groupSize <= hand.lengthNote: This question is the same as 1296: <https://leetcode.com/problems/divide-array-in-sets-of-k-consecutive-numbers/>
2024-06-07
648. Replace Words
Topic: Array, Hash Table, String, Trie
Difficulty: Medium
Problem:
In English, we have a concept called root, which can be followed by some other word to form another longer word - let's call this word derivative. For example, when the root
Given a
Return the
Example 1:
Example 2:
Constraints:
•
•
•
•
•
• The number of words in
• The length of each word in
• Every two consecutive words in
•
648. Replace Words
Topic: Array, Hash Table, String, Trie
Difficulty: Medium
Problem:
In English, we have a concept called root, which can be followed by some other word to form another longer word - let's call this word derivative. For example, when the root
"help" is followed by the word "ful", we can form a derivative "helpful".Given a
dictionary consisting of many roots and a sentence consisting of words separated by spaces, replace all the derivatives in the sentence with the root forming it. If a derivative can be replaced by more than one root, replace it with the root that has the shortest length.Return the
sentence after the replacement.Example 1:
Input: dictionary = ["cat","bat","rat"], sentence = "the cattle was rattled by the battery"
Output: "the cat was rat by the bat"
Example 2:
Input: dictionary = ["a","b","c"], sentence = "aadsfasf absbs bbab cadsfafs"
Output: "a a b c"
Constraints:
•
1 <= dictionary.length <= 1000•
1 <= dictionary[i].length <= 100•
dictionary[i] consists of only lower-case letters.•
1 <= sentence.length <= 10^6•
sentence consists of only lower-case letters and spaces.• The number of words in
sentence is in the range [1, 1000]• The length of each word in
sentence is in the range [1, 1000]• Every two consecutive words in
sentence will be separated by exactly one space.•
sentence does not have leading or trailing spaces.2024-06-08
523. Continuous Subarray Sum
Topic: Array, Hash Table, Math, Prefix Sum
Difficulty: Medium
Problem:
Given an integer array nums and an integer k, return
A good subarray is a subarray where:
• its length is at least two, and
• the sum of the elements of the subarray is a multiple of
Note that:
• A subarray is a contiguous part of the array.
• An integer
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
•
523. Continuous Subarray Sum
Topic: Array, Hash Table, Math, Prefix Sum
Difficulty: Medium
Problem:
Given an integer array nums and an integer k, return
true if nums has a good subarray or false otherwise.A good subarray is a subarray where:
• its length is at least two, and
• the sum of the elements of the subarray is a multiple of
k.Note that:
• A subarray is a contiguous part of the array.
• An integer
x is a multiple of k if there exists an integer n such that x = n * k. 0 is always a multiple of k.Example 1:
Input: nums = [23,2,4,6,7], k = 6
Output: true
Explanation: [2, 4] is a continuous subarray of size 2 whose elements sum up to 6.
Example 2:
Input: nums = [23,2,6,4,7], k = 6
Output: true
Explanation: [23, 2, 6, 4, 7] is an continuous subarray of size 5 whose elements sum up to 42.
42 is a multiple of 6 because 42 = 7 * 6 and 7 is an integer.
Example 3:
Input: nums = [23,2,6,4,7], k = 13
Output: false
Constraints:
•
1 <= nums.length <= 10^5•
0 <= nums[i] <= 10^9•
0 <= sum(nums[i]) <= 2^31 - 1•
1 <= k <= 2^31 - 12024-06-09
974. Subarray Sums Divisible by K
Topic: Array, Hash Table, Prefix Sum
Difficulty: Medium
Problem:
Given an integer array
A subarray is a contiguous part of an array.
Example 1:
Example 2:
Constraints:
•
•
•
974. Subarray Sums Divisible by K
Topic: Array, Hash Table, Prefix Sum
Difficulty: Medium
Problem:
Given an integer array
nums and an integer k, return the number of non-empty subarrays that have a sum divisible by k.A subarray is a contiguous part of an array.
Example 1:
Input: nums = [4,5,0,-2,-3,1], k = 5
Output: 7
Explanation: There are 7 subarrays with a sum divisible by k = 5:
[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]
Example 2:
Input: nums = [5], k = 9
Output: 0
Constraints:
•
1 <= nums.length <= 3 * 10^4•
-10^4 <= nums[i] <= 10^4•
2 <= k <= 10^42024-06-10
1051. Height Checker
Topic: Array, Sorting, Counting Sort
Difficulty: Easy
Problem:
A school is trying to take an annual photo of all the students. The students are asked to stand in a single file line in non-decreasing order by height. Let this ordering be represented by the integer array
You are given an integer array
Return the number of indices where
Example 1:
Example 2:
Example 3:
Constraints:
•
•
1051. Height Checker
Topic: Array, Sorting, Counting Sort
Difficulty: Easy
Problem:
A school is trying to take an annual photo of all the students. The students are asked to stand in a single file line in non-decreasing order by height. Let this ordering be represented by the integer array
expected where expected[i] is the expected height of the i^th student in line.You are given an integer array
heights representing the current order that the students are standing in. Each heights[i] is the height of the i^th student in line (0-indexed).Return the number of indices where
heights[i] != expected[i].Example 1:
Input: heights = [1,1,4,2,1,3]
Output: 3
Explanation:
heights: [1,1,4,2,1,3]
expected: [1,1,1,2,3,4]
Indices 2, 4, and 5 do not match.
Example 2:
Input: heights = [5,1,2,3,4]
Output: 5
Explanation:
heights: [5,1,2,3,4]
expected: [1,2,3,4,5]
All indices do not match.
Example 3:
Input: heights = [1,2,3,4,5]
Output: 0
Explanation:
heights: [1,2,3,4,5]
expected: [1,2,3,4,5]
All indices match.
Constraints:
•
1 <= heights.length <= 100•
1 <= heights[i] <= 1002024-06-11
1122. Relative Sort Array
Topic: Array, Hash Table, Sorting, Counting Sort
Difficulty: Easy
Problem:
Given two arrays
Sort the elements of
Example 1:
Example 2:
Constraints:
•
•
• All the elements of
• Each
1122. Relative Sort Array
Topic: Array, Hash Table, Sorting, Counting Sort
Difficulty: Easy
Problem:
Given two arrays
arr1 and arr2, the elements of arr2 are distinct, and all elements in arr2 are also in arr1.Sort the elements of
arr1 such that the relative ordering of items in arr1 are the same as in arr2. Elements that do not appear in arr2 should be placed at the end of arr1 in ascending order.Example 1:
Input: arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]
Output: [2,2,2,1,4,3,3,9,6,7,19]
Example 2:
Input: arr1 = [28,6,22,8,44,17], arr2 = [22,28,8,6]
Output: [22,28,8,6,17,44]
Constraints:
•
1 <= arr1.length, arr2.length <= 1000•
0 <= arr1[i], arr2[i] <= 1000• All the elements of
arr2 are distinct.• Each
arr2[i] is in arr1.2024-06-12
75. Sort Colors
Topic: Array, Two Pointers, Sorting
Difficulty: Medium
Problem:
Given an array
We will use the integers
You must solve this problem without using the library's sort function.
Example 1:
Example 2:
Constraints:
•
•
•
Follow up: Could you come up with a one-pass algorithm using only constant extra space?
75. Sort Colors
Topic: Array, Two Pointers, Sorting
Difficulty: Medium
Problem:
Given an array
nums with n objects colored red, white, or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white, and blue.We will use the integers
0, 1, and 2 to represent the color red, white, and blue, respectively.You must solve this problem without using the library's sort function.
Example 1:
Input: nums = [2,0,2,1,1,0]
Output: [0,0,1,1,2,2]
Example 2:
Input: nums = [2,0,1]
Output: [0,1,2]
Constraints:
•
n == nums.length•
1 <= n <= 300•
nums[i] is either 0, 1, or 2.Follow up: Could you come up with a one-pass algorithm using only constant extra space?
2024-06-13
2037. Minimum Number of Moves to Seat Everyone
Topic: Array, Greedy, Sorting
Difficulty: Easy
Problem:
There are
You may perform the following move any number of times:
• Increase or decrease the position of the
Return the minimum number of moves required to move each student to a seat such that no two students are in the same seat.
Note that there may be multiple seats or students in the same position at the beginning.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
2037. Minimum Number of Moves to Seat Everyone
Topic: Array, Greedy, Sorting
Difficulty: Easy
Problem:
There are
n seats and n students in a room. You are given an array seats of length n, where seats[i] is the position of the i^th seat. You are also given the array students of length n, where students[j] is the position of the j^th student.You may perform the following move any number of times:
• Increase or decrease the position of the
i^th student by 1 (i.e., moving the i^th student from position x to x + 1 or x - 1)Return the minimum number of moves required to move each student to a seat such that no two students are in the same seat.
Note that there may be multiple seats or students in the same position at the beginning.
Example 1:
Input: seats = [3,1,5], students = [2,7,4]
Output: 4
Explanation: The students are moved as follows:
- The first student is moved from from position 2 to position 1 using 1 move.
- The second student is moved from from position 7 to position 5 using 2 moves.
- The third student is moved from from position 4 to position 3 using 1 move.
In total, 1 + 2 + 1 = 4 moves were used.
Example 2:
Input: seats = [4,1,5,9], students = [1,3,2,6]
Output: 7
Explanation: The students are moved as follows:
- The first student is not moved.
- The second student is moved from from position 3 to position 4 using 1 move.
- The third student is moved from from position 2 to position 5 using 3 moves.
- The fourth student is moved from from position 6 to position 9 using 3 moves.
In total, 0 + 1 + 3 + 3 = 7 moves were used.
Example 3:
Input: seats = [2,2,6,6], students = [1,3,2,6]
Output: 4
Explanation: Note that there are two seats at position 2 and two seats at position 6.
The students are moved as follows:
- The first student is moved from from position 1 to position 2 using 1 move.
- The second student is moved from from position 3 to position 6 using 3 moves.
- The third student is not moved.
- The fourth student is not moved.
In total, 1 + 3 + 0 + 0 = 4 moves were used.
Constraints:
•
n == seats.length == students.length•
1 <= n <= 100•
1 <= seats[i], students[j] <= 1002024-06-14
945. Minimum Increment to Make Array Unique
Topic: Array, Greedy, Sorting, Counting
Difficulty: Medium
Problem:
You are given an integer array
Return the minimum number of moves to make every value in
The test cases are generated so that the answer fits in a 32-bit integer.
Example 1:
Example 2:
Constraints:
•
•
945. Minimum Increment to Make Array Unique
Topic: Array, Greedy, Sorting, Counting
Difficulty: Medium
Problem:
You are given an integer array
nums. In one move, you can pick an index i where 0 <= i < nums.length and increment nums[i] by 1.Return the minimum number of moves to make every value in
nums unique.The test cases are generated so that the answer fits in a 32-bit integer.
Example 1:
Input: nums = [1,2,2]
Output: 1
Explanation: After 1 move, the array could be [1, 2, 3].
Example 2:
Input: nums = [3,2,1,2,1,7]
Output: 6
Explanation: After 6 moves, the array could be [3, 4, 1, 2, 5, 7].
It can be shown with 5 or less moves that it is impossible for the array to have all unique values.
Constraints:
•
1 <= nums.length <= 10^5•
0 <= nums[i] <= 10^52024-06-15
502. IPO
Topic: Array, Greedy, Sorting, Heap (Priority Queue)
Difficulty: Hard
Problem:
Suppose LeetCode will start its IPO soon. In order to sell a good price of its shares to Venture Capital, LeetCode would like to work on some projects to increase its capital before the IPO. Since it has limited resources, it can only finish at most
You are given
Initially, you have
Pick a list of at most
The answer is guaranteed to fit in a 32-bit signed integer.
Example 1:
Example 2:
Constraints:
•
•
•
•
•
•
•
502. IPO
Topic: Array, Greedy, Sorting, Heap (Priority Queue)
Difficulty: Hard
Problem:
Suppose LeetCode will start its IPO soon. In order to sell a good price of its shares to Venture Capital, LeetCode would like to work on some projects to increase its capital before the IPO. Since it has limited resources, it can only finish at most
k distinct projects before the IPO. Help LeetCode design the best way to maximize its total capital after finishing at most k distinct projects.You are given
n projects where the i^th project has a pure profit profits[i] and a minimum capital of capital[i] is needed to start it.Initially, you have
w capital. When you finish a project, you will obtain its pure profit and the profit will be added to your total capital.Pick a list of at most
k distinct projects from given projects to maximize your final capital, and return the final maximized capital.The answer is guaranteed to fit in a 32-bit signed integer.
Example 1:
Input: k = 2, w = 0, profits = [1,2,3], capital = [0,1,1]
Output: 4
Explanation: Since your initial capital is 0, you can only start the project indexed 0.
After finishing it you will obtain profit 1 and your capital becomes 1.
With capital 1, you can either start the project indexed 1 or the project indexed 2.
Since you can choose at most 2 projects, you need to finish the project indexed 2 to get the maximum capital.
Therefore, output the final maximized capital, which is 0 + 1 + 3 = 4.
Example 2:
Input: k = 3, w = 0, profits = [1,2,3], capital = [0,1,2]
Output: 6
Constraints:
•
1 <= k <= 10^5•
0 <= w <= 10^9•
n == profits.length•
n == capital.length•
1 <= n <= 10^5•
0 <= profits[i] <= 10^4•
0 <= capital[i] <= 10^92024-06-16
330. Patching Array
Topic: Array, Greedy
Difficulty: Hard
Problem:
Given a sorted integer array
Return the minimum number of patches required.
Example 1:
Example 2:
Example 3:
Constraints:
•
•
•
•
330. Patching Array
Topic: Array, Greedy
Difficulty: Hard
Problem:
Given a sorted integer array
nums and an integer n, add/patch elements to the array such that any number in the range [1, n] inclusive can be formed by the sum of some elements in the array.Return the minimum number of patches required.
Example 1:
Input: nums = [1,3], n = 6
Output: 1
Explanation:
Combinations of nums are [1], [3], [1,3], which form possible sums of: 1, 3, 4.
Now if we add/patch 2 to nums, the combinations are: [1], [2], [3], [1,3], [2,3], [1,2,3].
Possible sums are 1, 2, 3, 4, 5, 6, which now covers the range [1, 6].
So we only need 1 patch.
Example 2:
Input: nums = [1,5,10], n = 20
Output: 2
Explanation: The two patches can be [2, 4].
Example 3:
Input: nums = [1,2,2], n = 5
Output: 0
Constraints:
•
1 <= nums.length <= 1000•
1 <= nums[i] <= 10^4•
nums is sorted in ascending order.•
1 <= n <= 2^31 - 12024-06-17
633. Sum of Square Numbers
Topic: Math, Two Pointers, Binary Search
Difficulty: Medium
Problem:
Given a non-negative integer
Example 1:
Example 2:
Constraints:
•
633. Sum of Square Numbers
Topic: Math, Two Pointers, Binary Search
Difficulty: Medium
Problem:
Given a non-negative integer
c, decide whether there're two integers a and b such that a^2 + b^2 = c.Example 1:
Input: c = 5
Output: true
Explanation: 1 * 1 + 2 * 2 = 5
Example 2:
Input: c = 3
Output: false
Constraints:
•
0 <= c <= 2^31 - 12024-06-18
826. Most Profit Assigning Work
Topic: Array, Two Pointers, Binary Search, Greedy, Sorting
Difficulty: Medium
Problem:
You have
•
•
Every worker can be assigned at most one job, but one job can be completed multiple times.
• For example, if three workers attempt the same job that pays
Return the maximum profit we can achieve after assigning the workers to the jobs.
Example 1:
Example 2:
Constraints:
•
•
•
•
•
826. Most Profit Assigning Work
Topic: Array, Two Pointers, Binary Search, Greedy, Sorting
Difficulty: Medium
Problem:
You have
n jobs and m workers. You are given three arrays: difficulty, profit, and worker where:•
difficulty[i] and profit[i] are the difficulty and the profit of the i^th job, and•
worker[j] is the ability of j^th worker (i.e., the j^th worker can only complete a job with difficulty at most worker[j]).Every worker can be assigned at most one job, but one job can be completed multiple times.
• For example, if three workers attempt the same job that pays
$1, then the total profit will be $3. If a worker cannot complete any job, their profit is $0.Return the maximum profit we can achieve after assigning the workers to the jobs.
Example 1:
Input: difficulty = [2,4,6,8,10], profit = [10,20,30,40,50], worker = [4,5,6,7]
Output: 100
Explanation: Workers are assigned jobs of difficulty [4,4,6,6] and they get a profit of [20,20,30,30] separately.
Example 2:
Input: difficulty = [85,47,57], profit = [24,66,99], worker = [40,25,25]
Output: 0
Constraints:
•
n == difficulty.length•
n == profit.length•
m == worker.length•
1 <= n, m <= 10^4•
1 <= difficulty[i], profit[i], worker[i] <= 10^5