Suppose we have a list of numbers called nums, we have to find the length of longest subsequence that flips sign on each consecutive number.So, if the input is like nums = [1, 3, -6, 4, -3], then the output will be 4, as we can pick [1, -6, 4, -3].To solve this, we will follow these steps −pos := 0, neg := 0for each n in nums, doif n < 0, thenneg := pos + 1otherwise, pos := neg + 1return maximum of pos and negLet us see the following implementation to get better understanding −Example Live Democlass Solution: ... Read More
The values are increasingly ordered if the first value is less than the second, the second is less than the third, the third is less than the fourth, the fourth is less than the fifth, and so on. In base R, we have a function called is.unsorted that can help us to determine whether the values in a column of an R data frame are increasingly ordered or not. Check out the below examples to understand how it works.Example1Live Demo> set.seed(3257) > x df1 df1Output x 1 9 2 8 3 8 4 7 5 10 6 2 7 ... Read More
Suppose we have a list of intervals where each interval is in form [start, end]. We have to find the longest interval that we can make by merging any number of overlapping intervals.So, if the input is like [[1, 6],[4, 9],[5, 6],[11, 14],[16, 20]], then the output will be 9, as after merging, we have the interval [1, 9] of a length 9.To solve this, we will follow these steps −sort the list intervalsunion := first interval from the intervals listbest := union[end] - union[start] + 1for each start time s and end time e in intervals except the first one, doif s
Suppose we have a list of strictly increasing positive numbers called nums. We have to find the length of the longest subsequence A (of length minimum 3) such that A[i] = A[i - 1] + A[i - 2] for all i > 1.So, if the input is like nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], then the output will be 6, as we can pick [1, 2, 3, 5, 8, 13].To solve this, we will follow these steps −A := numsn := size of AmaxLen := 0S := a new set ... Read More
The union function in base R helps us to find the union of two vectors but if we have three vectors then the union cannot be directly created. For this purpose, we need to use union function twice. For example, if we have three vectors defined as x, y, and z then the union of these vectors can be found by using the command union(x, union(y, z)).Example1Live Demo> x1 y1 z1 union(x1, union(y1, z1))Output[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15Example2Live Demo> x2 x2Output[1] 13 6 16 11 9 11 3 15 ... Read More
Suppose we have a binary string s. If we can swap at most one pair of characters in the string, we have to find the resulting length of the longest contiguous substring of 1s.So, if the input is like s = "1111011111", then the output will be 9, as we can swap s[4] and s[9] to get 9 consecutive 1s.To solve this, we will follow these steps −l := 0, cnt := 0, ans := 0for r in range 0 to size of s, docnt := cnt + (1 when s[r] is same as "0" otherwise 0)if cnt > 1, ... Read More
Suppose we have a singly linked list where elements are arranged in non-decreasing order, we have to convert it to a height balanced binary search tree. So if the list is like [-10, -3, 0, 5, 9], The possible tree will be like −To solve this, we will follow these steps −If the list is empty, thenreturn nullDefine a recursive method called sortedListToBST() this will take list start nodex := address of the previous node of mid node from list amid := exact mid nodecreate a new node with value by taking from value of midnextStart := next of mid ... Read More
Suppose we have two sorted linked lists L1 and L2, we have to return a new sorted linked list that is the union of the two given lists.So, if the input is like L1 = [10, 20, 30, 40, 50, 60, 70] L2 = [10, 30, 50, 80, 90], then the output will be [10, 20, 30, 40, 50, 60, 70, 80, 90, ]To solve this, we will follow these steps −Define a function solve() . This will take L1, L2if L1 is empty, thenreturn L2if L2 is empty, thenreturn L1if value of L1 < value of L2, thenres := ... Read More
Suppose we have a singly linked list, we have to convert it to a binary tree path using following rules −The head of the linked list is the root.Each subsequent node is the left child of the parent when its value is less, otherwise it will be the right child.So, if the input is like [2, 1, 3, 4, 0, 5], then the output will beTo solve this, we will follow these steps −Define a function solve() . This will take nodeif node is null, thenreturn nullroot := create a tree node with value same as value of nodeif next ... Read More
Suppose we have a singly linked list and another value k. We have to arrange the nodes so that all nodes whose values are less than k come first, and all nodes whose values are equal to k next, and finally other nodes at last. The constraint is that the relative ordering of the nodes should remain the same.So, if the input is like L = [4, 3, 6, 6, 6, 10, 8] k = 6, then the output will be [4, 3, 6, 6, 6, 10, 8, ]To solve this, we will follow these steps −less_head := create a ... Read More