Suppose we have a list of distinct numbers; we have to find the minimum number of swaps required to sort the list in increasing order.So, if the input is like nums = [3, 1, 7, 5], then the output will be 2, as we can swap 3 and 1, then 5 and 7.To solve this, we will follow these steps:sort_seq := sort the list numstable := a new mapfor each index i and value n in nums, dotable[n] := iswaps := 0for i in range 0 to size of nums, don := nums[i]s_n := sort_seq[i]s_i := table[s_n]if s_n is not ... Read More
Suppose we have a list of numbers called nums and another value target, we have to find the number of sublists whose sum is same as target.So, if the input is like nums = [3, 0, 3] target = 3, then the output will be 4, as we have these sublists whose sum is 3: [3], [3, 0], [0, 3], [3].To solve this, we will follow these steps:temp := an empty maptemp[0] := 1s := 0ans := 0for i in range 0 to size of nums, dos := s + nums[i]comp := s - targetif comp is in temp, thenans ... Read More
Suppose we have a list nums, and two additional values k and target, we have to find the number of sublists whose size is k and its average value ≥ target.So, if the input is like nums = [1, 10, 5, 6, 7] k = 3 target = 6, then the output will be 2, as the sublist [1, 10, 7] has average value of 6 and [10, 5, 6] has average of 7.To solve this, we will follow these steps:target := target * ksum := 0, ans := 0for each index i and number n in nums, doif i ... Read More
Suppose we have a list of fractions where each fraction is individual lists [numerator, denominator] which represents the number (numerator / denominator). We have to find the number of pairs of fractions whose sum is 1.So, if the input is like fractions = [[2, 7], [3, 12], [4, 14], [5, 7], [3, 4], [1, 4]], then the output will be 4, as (2/7 + 5/7), (3/12 + 3/4), (3/4 + 1/4), (4/14 + 5/7) are the four pairs which sum to 1.To solve this, we will follow these steps:d := a new mapans := 0for each fraction i in fractions, ... Read More
Suppose we have a number n, we have to find the largest number smaller or equal to n where all digits are non-decreasing.So, if the input is like n = 221, then the output will be 199.To solve this, we will follow these steps:digits := a list with all digits in nbound := nullfor i in range size of digits - 1 down to 0, doif digits[i] < digits[i - 1], thenbound := idigits[i - 1] := digits[i - 1] - 1if bound is not null, thenfor i in range bound to size of digits, dodigits[i] := 9join each digit ... Read More
Suppose we have a number n and another value k. Now let us consider a string containing only "0", "1", and "2"s where no character is repeated in succession. We have to select such strings of length n and find the kth lexicographically smallest string. If there is no kth string, return empty string.So, if the input is like n = 4 k = 2, then the output will be "0120".To solve this, we will follow these steps:define a method solve() this will take s, k and lastif s is same as 0, thenreturn blank stringfor each character c in ... Read More
Suppose we have a number n, we have to find first n numbers that are sorted in lexicographic sequence.So, if the input is like n = 15, then the output will be [1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]To solve this, we will follow these steps:count := 1ans := a list with single element countwhile size of ans < n, docount := count * 10while count > n , docount := quotient of count / 10count := count + 1while count mod 10 is same as 0, docount := quotient of count ... Read More
Suppose we have a list of distinct numbers called nums and another number k, we have to find the number of distinct combinations that sum up to k. You can reuse numbers when creating combinations.So, if the input is like nums = [2, 4, 5] k = 4, then the output will be 2, as we can make two such groups like [2, 2] and [4].To solve this, we will follow these steps:table := a list with size k + 1, and fill with 0table[0] := 1for each num in nums, dofor i in range num to k, dotable[i] := ... Read More
Suppose we have a list of intervals for different movie showings (they can be overlapped), we have to find the minimum number of theatres required to be able to show all of the movies.So, if the input is like intervals = [[20, 65], [0, 40], [50, 140]], then the output will be 2, as [20, 65] and [0, 40] are overlapping. [20, 65] and [50, 140] are also overlapping but [0, 40] and [50, 140] are not. So we need 2 theaters.To solve this, we will follow these steps:t := a new listfor each interval [a, b] in intervals, doinsert ... Read More
Suppose we have a list of numbers called nums and another value k. Let us consider an operation where we increase some element by one. We can perform at most k times, we have to find the value of the most frequently occurring number we can obtain. If there are more than one solution, select the smallest possible number.So, if the input is like nums = [1, 0, 0, 0, 8, 8, 8, 8] k = 8, then the output will be 8, as we can increase 1, 7 times to get 8, and increase any 0 to 1, so, ... Read More