diff --git a/Task 1/Container with most water/Question.md b/Task 1/Container with most water/Question.md index bac07de7..689d67c2 100644 --- a/Task 1/Container with most water/Question.md +++ b/Task 1/Container with most water/Question.md @@ -1,3 +1,34 @@ -Given n non-negative integers a1, a2, ..., an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of the line i is at (i, ai) and (i, 0). Find two lines, which, together with the x-axis forms a container, such that the container contains the most water. +Given an array of n non-negative integers a1, a2, ..., an , where each element represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of a line i is at (i, ai) and (i, 0). Find two lines, which, together with the x-axis forms a container, such that the container contains the most water. Note: You may not slant the container. + +Example:
+a) Input: n=9
+lines = [1,8,6,2,5,4,8,3,7]
+Output: 49
+Explanation: The above vertical lines are represented by array [1,8,6,2,5,4,8,3,7]. In this case, the max area of water the container can contain is 49 which lies between the index(1,8) i.e, between the line 8 at 1st position and line 7 at 8th position. + + +b) Input: n=5
+lines = [4,3,2,1,4]
+Output: 16
+Explanation: The container containing most water lies between the index 0 and 4 i.e, between the line 4 at 0th position and line 4 at 4th position. + + +Approach: Two Pointer Approach + +The max area is calculated by the following formula: +Area= (j - i) * min(lines[i], lines[j])
+ +We should choose (i, j) so that Area is max. Note that i, j go through the range (1, n) and j > i. +The simple way is to take all possibilities of (i, j) and compare all obtained Area. The time complexity will be O(n)^2. + +But, What we gonna do is to choose all possibilities of (i, j) in a wise way. If: +lines[i] < lines[j] we will check the next (i+1, j) (or move i to the right) +lines[i] >= lines[j] we will check the next (i, j-1) (or move j to the left) +Here is the explaination for that: +When lines[i] < lines[j] , we don't need to calculate all (i, j-1), (i, j-2), .... Why? because these max areas will be smaller than our Area at (i, j). + +NOTE: The Time complexity of this solution is O(n). + + diff --git a/Task 1/HAckerrank_rank/Solution.js b/Task 1/HAckerrank_rank/Solution.js new file mode 100644 index 00000000..90a689ac --- /dev/null +++ b/Task 1/HAckerrank_rank/Solution.js @@ -0,0 +1,35 @@ +var arr=[['rancho',45],['chatur',32],['raju',30],['farhan',28],['virus',32],['joy',45]] +var N=arr.length; +for(var i=0;i0){ + if(arr[i-1][1]==arr[i][1]){ + console.log(rank+" "+arr[i][0]) + a++ + } + else{ + rank=rank+a + console.log(rank+" "+arr[i][0]) + a=1 + } + + + }else{ + console.log(rank+" "+arr[i][0]) + + + } +} \ No newline at end of file diff --git a/Task 1/HAckerrank_rank/question.md b/Task 1/HAckerrank_rank/question.md new file mode 100644 index 00000000..ff828eac --- /dev/null +++ b/Task 1/HAckerrank_rank/question.md @@ -0,0 +1,9 @@ +You are given name and marks of N different students in a hackerrank contest. Your task is to write a program that makes leaderboard of the students under following conditions: + +- If two students get same marks they get same rank + +- The student placed next to the same marks students will get the rank skipping the intermediate ranks. + +Refer to the sample test case for better understanding + +Note : You cannot use built-in sort function. Using that can lead to disqualification. Write your own sorting algorithm \ No newline at end of file diff --git a/Task 3/rotate 90_matrix/rotate_2d_arr.js b/Task 3/rotate 90_matrix/rotate_2d_arr.js new file mode 100644 index 00000000..4a794d73 --- /dev/null +++ b/Task 3/rotate 90_matrix/rotate_2d_arr.js @@ -0,0 +1,23 @@ +//Given a squarematrixof sizeN, turn it by 90 degrees in an anti-clockwise direction, as shown in sample input. +// Output +// You have to display therotated matrix. + +function rotateBy90(N, matrix){ + //write code here + for(var i=R-1;i>=0;i--){ + var out=[] + for(var j=0;j