Skip to content

Commit 26cc1d0

Browse files
author
liwentian
committed
fd
1 parent b1443f9 commit 26cc1d0

File tree

13 files changed

+231
-20
lines changed

13 files changed

+231
-20
lines changed

airbnb/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

airbnb/airbnb.iml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module external.linked.project.id=":airbnb" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" type="JAVA_MODULE" version="4">
3+
<component name="FacetManager">
4+
<facet type="android-gradle" name="Android-Gradle">
5+
<configuration>
6+
<option name="GRADLE_PROJECT_PATH" value=":airbnb" />
7+
</configuration>
8+
</facet>
9+
<facet type="java-gradle" name="Java-Gradle">
10+
<configuration>
11+
<option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
12+
<option name="BUILDABLE" value="true" />
13+
</configuration>
14+
</facet>
15+
</component>
16+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
17+
<output url="file://$MODULE_DIR$/build/classes/main" />
18+
<output-test url="file://$MODULE_DIR$/build/classes/test" />
19+
<exclude-output />
20+
<content url="file://$MODULE_DIR$">
21+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
22+
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
23+
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
24+
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
25+
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
26+
<excludeFolder url="file://$MODULE_DIR$/build" />
27+
</content>
28+
<orderEntry type="inheritedJdk" />
29+
<orderEntry type="sourceFolder" forTests="false" />
30+
<orderEntry type="module" module-name="solution" exported="" />
31+
<orderEntry type="module" module-name="library" exported="" />
32+
</component>
33+
</module>

airbnb/build.gradle

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apply plugin: 'java'
2+
3+
dependencies {
4+
compile fileTree(dir: 'libs', include: ['*.jar'])
5+
compile project(path: ':solution')
6+
}
7+
8+
sourceCompatibility = "1.7"
9+
targetCompatibility = "1.7"
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.example;
2+
3+
import java.util.HashMap;
4+
import java.util.HashSet;
5+
import java.util.TreeSet;
6+
7+
/**
8+
* Created by liwentian on 2017/10/15.
9+
*/
10+
11+
public class ContainsDuplicate {
12+
13+
public boolean containsDuplicate(int[] nums) {
14+
HashSet<Integer> set = new HashSet<Integer>();
15+
for (int n : nums) {
16+
if (!set.add(n)) {
17+
return true;
18+
}
19+
}
20+
return false;
21+
}
22+
23+
public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
24+
TreeSet<Long> set = new TreeSet<>();
25+
for (int i = 0; i < nums.length; ++i) {
26+
long n = nums[i];
27+
Long s = set.ceiling(n);
28+
if (s != null && s <= n + t) return true;
29+
30+
Long g = set.floor(n);
31+
if (g != null && n <= g + t) return true;
32+
33+
set.add(n);
34+
if (set.size() > k) {
35+
set.remove((long) nums[i - k]);
36+
}
37+
}
38+
return false;
39+
}
40+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.example;
2+
3+
/**
4+
* Created by liwentian on 2017/10/15.
5+
*/
6+
7+
public class HouseRobber {
8+
9+
public int rob(int[] nums) {
10+
int[] dp = new int[nums.length + 1];
11+
dp[0] = 0;
12+
for (int i = 1; i <= nums.length; i++) {
13+
dp[i] = Math.max(nums[i - 1] + i > 1 ? dp[i - 2] : 0, dp[i - 1]);
14+
}
15+
return dp[nums.length];
16+
}
17+
18+
public int rob2(int[] nums) {
19+
int prev = 0, cur = 0;
20+
for (int i = 0; i < nums.length; i++) {
21+
int temp = cur;
22+
cur = Math.max(prev + nums[i], cur);
23+
prev = temp;
24+
}
25+
return cur;
26+
}
27+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.example;
2+
3+
import com.inuker.solution.ContainsDuplicateIII;
4+
5+
public class Main {
6+
7+
public static void main(String[] args) {
8+
int[] nums = {
9+
1, 3, 1
10+
};
11+
boolean result = new ContainsDuplicateIII().containsNearbyAlmostDuplicate2(nums, 1, 1);
12+
System.out.println(result);
13+
}
14+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.example;
2+
3+
import java.util.Arrays;
4+
import java.util.HashMap;
5+
import java.util.HashSet;
6+
import java.util.Set;
7+
8+
/**
9+
* Created by liwentian on 2017/10/14.
10+
*/
11+
12+
public class TwoSum {
13+
14+
public int[] twoSum(int[] nums, int target) {
15+
HashMap<Integer, Integer> map = new HashMap<>();
16+
for (int i = 0; i < nums.length; i++) {
17+
map.put(nums[i], i);
18+
}
19+
for (int i = 0; i < nums.length; i++) {
20+
Integer k = map.get(target - nums[i]);
21+
if (k != null && k != i) {
22+
return new int[] {i, k};
23+
}
24+
}
25+
return null;
26+
}
27+
}

ebook/array/Array.tex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ \subsubsection{Solution}
2020
\begin{Code}
2121
/**
2222
* 如果符合条件的不止一组呢?则找到一组就从map删除一组
23-
* @return
23+
* 另外要考虑的case如[3,3], 6,即存在相同数的情况
2424
*/
25+
2526
public int[] twoSum(int[] nums, int target) {
2627
HashMap<Integer, Integer> map = new HashMap<>();
2728
for (int i = 0; i < nums.length; i++) {

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
include ':app', ':solution', ':google', ':library', ':facebook', ':amazon', ':topics', ':test', ':tools'
1+
include ':app', ':solution', ':google', ':library', ':facebook', ':amazon', ':topics', ':test', ':tools', ':airbnb'

solution/src/main/java/com/inuker/solution/ContainsDuplicate.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
package com.inuker.solution;
22

3+
import java.util.HashMap;
34
import java.util.HashSet;
45
import java.util.Set;
6+
import java.util.TreeSet;
57

68
/**
79
* Created by dingjikerbo on 16/12/8.
810
*/
911

12+
/**
13+
* https://leetcode.com/articles/contains-duplicate/
14+
*/
1015
public class ContainsDuplicate {
1116

1217
public boolean containsDuplicate(int[] nums) {

0 commit comments

Comments
 (0)