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 4454fd4

Browse files
p198
1 parent 5537170 commit 4454fd4

File tree

5 files changed

+64
-3
lines changed

5 files changed

+64
-3
lines changed

‎AllQuestions.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3137,7 +3137,7 @@ Return 2 as it occurs twice: once as the left leaf, and once as the sum of 2 + 5
31373137
Given an array and a number k that's smaller than the length of the array,
31383138
rotate the array to the right k elements in-place.
31393139

3140-
## Problem-198:waxing_crescent_moon:
3140+
## [Problem-198](src/main/java/in/ashwanik/dcp/problems/p181_210/p198):sunny:
31413141

31423142

31433143
> 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 (57)**
6+
## **Google (58)**
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)|[P195](src/main/java/in/ashwanik/dcp/problems/p181_210/p195)|
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)|[P198](src/main/java/in/ashwanik/dcp/problems/p181_210/p198)|
1414

1515

1616
## **Facebook (26)**
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Given a set of distinct positive integers, find the largest subset such that
2+
every pair of elements in the subset (i, j) satisfies either i % j = 0 or j % i
3+
= 0.
4+
5+
For example, given the set [3, 5, 10, 20, 21], you should return [5, 10, 20].
6+
Given [1, 3, 6, 24], return [1, 3, 6, 24].
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package in.ashwanik.dcp.problems.p181_210.p198;
2+
3+
import java.util.ArrayList;
4+
import java.util.Arrays;
5+
import java.util.List;
6+
7+
class Solution {
8+
9+
List<Integer> getSubset(int[] array) {
10+
List<Integer> list = new ArrayList<>();
11+
if (array == null || array.length == 0) {
12+
return list;
13+
}
14+
Arrays.sort(array);
15+
16+
int[] numberArray = new int[array.length];
17+
Arrays.fill(numberArray, 1);
18+
int[] previousDivisorIndex = new int[array.length];
19+
Arrays.fill(previousDivisorIndex, -1);
20+
int maxIndex = 0;
21+
for (int i = 0; i < array.length; i++) {
22+
for (int j = 0; j < i; j++) {
23+
if (array[i] % array[j] == 0 && (numberArray[i] < numberArray[j] + 1)) {
24+
numberArray[i] = numberArray[j] + 1;
25+
previousDivisorIndex[i] = j;
26+
}
27+
}
28+
29+
if (numberArray[maxIndex] < numberArray[i]) {
30+
maxIndex = i;
31+
}
32+
}
33+
int i = maxIndex;
34+
while (i >= 0) {
35+
list.add(array[i]);
36+
i = previousDivisorIndex[i];
37+
}
38+
39+
return list;
40+
}
41+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package in.ashwanik.dcp.problems.p181_210.p198;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
6+
7+
public class SolutionTest {
8+
9+
@Test
10+
void testSubset() {
11+
assertArrayEquals(new Integer[]{20, 10, 5}, new Solution().getSubset(new int[]{3, 5, 10, 20, 21}).toArray());
12+
assertArrayEquals(new Integer[]{24, 6, 3, 1}, new Solution().getSubset(new int[]{1, 3, 6, 24}).toArray());
13+
}
14+
}

0 commit comments

Comments
(0)

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