Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit acce16f

Browse files
p195
1 parent 5ab2e58 commit acce16f

File tree

5 files changed

+74
-3
lines changed

5 files changed

+74
-3
lines changed

‎AllQuestions.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3089,7 +3089,7 @@ y = 0 and the other list q1, q2, ..., qn on the line y = 1. Imagine a set of n
30893089
line segments connecting each point pi to qi. Write an algorithm to determine
30903090
how many pairs of the line segments intersect.
30913091

3092-
## Problem-195:waxing_crescent_moon:
3092+
## [Problem-195](src/main/java/in/ashwanik/dcp/problems/p181_210/p195):sunny:
30933093

30943094

30953095
> This problem was asked by Google.

‎README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ Solutions to the coding problems from [Daily coding problem](https://dailycoding
33

44
## For all questions, see [here](AllQuestions.md)
55

6-
## **Google (56)**
6+
## **Google (57)**
77
| | | | | | | | | | | | |
88
|--|--|--|--|--|--|--|--|--|--|--|--|
99
|[P1](src/main/java/in/ashwanik/dcp/problems/p1_30/p1)|[P3](src/main/java/in/ashwanik/dcp/problems/p1_30/p3)|[P8](src/main/java/in/ashwanik/dcp/problems/p1_30/p8)|[P14](src/main/java/in/ashwanik/dcp/problems/p1_30/p14)|[P17](src/main/java/in/ashwanik/dcp/problems/p1_30/p17)|[P18](src/main/java/in/ashwanik/dcp/problems/p1_30/p18)|[P20](src/main/java/in/ashwanik/dcp/problems/p1_30/p20)|[P23](src/main/java/in/ashwanik/dcp/problems/p1_30/p23)|[P24](src/main/java/in/ashwanik/dcp/problems/p1_30/p24)|[P26](src/main/java/in/ashwanik/dcp/problems/p1_30/p26)|[P31](src/main/java/in/ashwanik/dcp/problems/p31_60/p31)|[P35](src/main/java/in/ashwanik/dcp/problems/p31_60/p35)|
1010
|[P37](src/main/java/in/ashwanik/dcp/problems/p31_60/p37)|[P42](src/main/java/in/ashwanik/dcp/problems/p31_60/p42)|[P44](src/main/java/in/ashwanik/dcp/problems/p31_60/p44)|[P48](src/main/java/in/ashwanik/dcp/problems/p31_60/p48)|[P52](src/main/java/in/ashwanik/dcp/problems/p31_60/p52)|[P56](src/main/java/in/ashwanik/dcp/problems/p31_60/p56)|[P61](src/main/java/in/ashwanik/dcp/problems/p61_90/p61)|[P64](src/main/java/in/ashwanik/dcp/problems/p61_90/p64)|[P67](src/main/java/in/ashwanik/dcp/problems/p61_90/p67)|[P68](src/main/java/in/ashwanik/dcp/problems/p61_90/p68)|[P72](src/main/java/in/ashwanik/dcp/problems/p61_90/p72)|[P73](src/main/java/in/ashwanik/dcp/problems/p61_90/p73)|
1111
|[P76](src/main/java/in/ashwanik/dcp/problems/p61_90/p76)|[P78](src/main/java/in/ashwanik/dcp/problems/p61_90/p78)|[P80](src/main/java/in/ashwanik/dcp/problems/p61_90/p80)|[P83](src/main/java/in/ashwanik/dcp/problems/p61_90/p83)|[P86](src/main/java/in/ashwanik/dcp/problems/p61_90/p86)|[P90](src/main/java/in/ashwanik/dcp/problems/p61_90/p90)|[P94](src/main/java/in/ashwanik/dcp/problems/p91_120/p94)|[P100](src/main/java/in/ashwanik/dcp/problems/p91_120/p100)|[P104](src/main/java/in/ashwanik/dcp/problems/p91_120/p104)|[P108](src/main/java/in/ashwanik/dcp/problems/p91_120/p108)|[P111](src/main/java/in/ashwanik/dcp/problems/p91_120/p111)|[P113](src/main/java/in/ashwanik/dcp/problems/p91_120/p113)|
1212
|[P115](src/main/java/in/ashwanik/dcp/problems/p91_120/p115)|[P118](src/main/java/in/ashwanik/dcp/problems/p91_120/p118)|[P119](src/main/java/in/ashwanik/dcp/problems/p91_120/p119)|[P121](src/main/java/in/ashwanik/dcp/problems/p121_150/p121)|[P125](src/main/java/in/ashwanik/dcp/problems/p121_150/p125)|[P136](src/main/java/in/ashwanik/dcp/problems/p121_150/p136)|[P138](src/main/java/in/ashwanik/dcp/problems/p121_150/p138)|[P142](src/main/java/in/ashwanik/dcp/problems/p121_150/p142)|[P144](src/main/java/in/ashwanik/dcp/problems/p121_150/p144)|[P145](src/main/java/in/ashwanik/dcp/problems/p121_150/p145)|[P159](src/main/java/in/ashwanik/dcp/problems/p151_180/p159)|[P164](src/main/java/in/ashwanik/dcp/problems/p151_180/p164)|
13-
|[P165](src/main/java/in/ashwanik/dcp/problems/p151_180/p165)|[P169](src/main/java/in/ashwanik/dcp/problems/p151_180/p169)|[P175](src/main/java/in/ashwanik/dcp/problems/p151_180/p175)|[P179](src/main/java/in/ashwanik/dcp/problems/p151_180/p179)|[P180](src/main/java/in/ashwanik/dcp/problems/p151_180/p180)|[P181](src/main/java/in/ashwanik/dcp/problems/p181_210/p181)|[P189](src/main/java/in/ashwanik/dcp/problems/p181_210/p189)|[P192](src/main/java/in/ashwanik/dcp/problems/p181_210/p192)|
13+
|[P165](src/main/java/in/ashwanik/dcp/problems/p151_180/p165)|[P169](src/main/java/in/ashwanik/dcp/problems/p151_180/p169)|[P175](src/main/java/in/ashwanik/dcp/problems/p151_180/p175)|[P179](src/main/java/in/ashwanik/dcp/problems/p151_180/p179)|[P180](src/main/java/in/ashwanik/dcp/problems/p151_180/p180)|[P181](src/main/java/in/ashwanik/dcp/problems/p181_210/p181)|[P189](src/main/java/in/ashwanik/dcp/problems/p181_210/p189)|[P192](src/main/java/in/ashwanik/dcp/problems/p181_210/p192)|[P195](src/main/java/in/ashwanik/dcp/problems/p181_210/p195)|
1414

1515

1616
## **Facebook (26)**
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
Let A be an N by M matrix in which every row and every column is sorted.
2+
3+
Given i1, j1, i2, and j2, compute the number of elements of M smaller than M{i1,
4+
j1} and larger than M{i2, j2}.
5+
6+
For example, given the following matrix:
7+
8+
{{1, 3, 7, 10, 15, 20},
9+
{2, 6, 9, 14, 22, 25},
10+
{3, 8, 10, 15, 25, 30},
11+
{10, 11, 12, 23, 30, 35},
12+
{20, 25, 30, 35, 40, 45}}
13+
14+
15+
And i1 = 1, j1 = 1, i2 = 3, j2 = 3, return 15 as there are 15 numbers in the
16+
matrix smaller than 6 or greater than 23.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package in.ashwanik.dcp.problems.p181_210.p195;
2+
3+
class Solution {
4+
int countNumbers(int[][] array, int[] i, int[] j) {
5+
6+
if (array == null || array.length == 0) {
7+
return -1;
8+
}
9+
10+
int iNum = array[i[0]][i[1]];
11+
int jNum = array[j[0]][j[1]];
12+
13+
14+
int count = 0;
15+
for (int[] row : array) {
16+
count = count + findSmaller(row, iNum) + (row.length - findSmaller(row, jNum));
17+
}
18+
return count;
19+
20+
}
21+
22+
//1, 3, 7, 10, 15, 20
23+
private int findSmaller(int[] array, int number) {
24+
25+
int start = 0;
26+
int end = array.length - 1;
27+
int mid = 0;
28+
while (start <= end) {
29+
mid = start + (end - start) / 2;
30+
if (array[mid] < number) {
31+
start = mid + 1;
32+
} else {
33+
end = mid - 1;
34+
}
35+
}
36+
return start;
37+
38+
}
39+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package in.ashwanik.dcp.problems.p181_210.p195;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import static org.junit.jupiter.api.Assertions.assertEquals;
6+
7+
public class SolutionTest {
8+
@Test
9+
void testCount() {
10+
assertEquals(15, new Solution().countNumbers(new int[][]{{1, 3, 7, 10, 15, 20},
11+
{2, 6, 9, 14, 22, 25},
12+
{3, 8, 10, 15, 25, 30},
13+
{10, 11, 12, 23, 30, 35},
14+
{20, 25, 30, 35, 40, 45}}, new int[]{1, 1}, new int[]{3, 3}));
15+
}
16+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /