Skip to content

Commit 44a27ce

Browse files
committed
update
1 parent 9a56c9a commit 44a27ce

File tree

38 files changed

+763
-114
lines changed

38 files changed

+763
-114
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// AC
2+
class Solution {
3+
public int getLucky(String s, int k) {
4+
int sumDigit = 0;
5+
for (char c: s.toCharArray()) {
6+
int temp = c - 'a' + 1;
7+
if (temp < 10) {
8+
sumDigit += temp;
9+
} else {
10+
sumDigit += (temp / 10) + (temp % 10);
11+
}
12+
}
13+
14+
int tranSumDigit = sumDigit;
15+
if (k > 1) {
16+
for (int i = 1; i < k; i++) {
17+
int copy = tranSumDigit;
18+
tranSumDigit = 0;
19+
while (copy > 0) {
20+
tranSumDigit += copy % 10;
21+
copy /= 10;
22+
}
23+
if (tranSumDigit < 10) {
24+
break;
25+
}
26+
}
27+
}
28+
29+
return tranSumDigit;
30+
}
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// AC
2+
class Solution {
3+
public String maximumNumber(String num, int[] change) {
4+
int size = num.length();
5+
StringBuilder ret = new StringBuilder();
6+
boolean started = false, stopped = false, everChanged = false;
7+
for (int i = 0; i < size; i++) {
8+
int digit = Integer.parseInt(String.valueOf(num.charAt(i)));
9+
if (change[digit] >= digit && !stopped) {
10+
started = true;
11+
ret.append(change[digit]);
12+
if (change[digit] > digit) {
13+
everChanged = true;
14+
}
15+
} else {
16+
ret.append(digit);
17+
if (started && everChanged) {
18+
stopped = true;
19+
}
20+
}
21+
}
22+
23+
return ret.toString();
24+
}
25+
}

Diff for: leetcode_solved/[editing]leetcode_0077_Combinations.cpp

Whitespace-only changes.

Diff for: leetcode_solved/[editing]leetcode_0131_Palindrome_Partitioning.cpp

-6
This file was deleted.

Diff for: leetcode_solved/[editing]leetcode_0151_Reverse_Words_in_a_String.cpp

Whitespace-only changes.

Diff for: leetcode_solved/[editing]leetcode_0216_Combination_Sum_III.cpp

Whitespace-only changes.

Diff for: leetcode_solved/[editing]leetcode_0328_Odd_Even_Linked_List.cpp

-14
This file was deleted.

Diff for: leetcode_solved/[editing]leetcode_0386_Lexicographical_Numbers.cpp

-6
This file was deleted.

Diff for: leetcode_solved/[editing]leetcode_0491_Increasing_Subsequences.cpp

-6
This file was deleted.

Diff for: leetcode_solved/[editing]leetcode_0540_Single_Element_in_a_Sorted_Array.cpp

-6
This file was deleted.

Diff for: leetcode_solved/[editing]leetcode_0677_Map_Sum_Pairs.cpp

-22
This file was deleted.

Diff for: leetcode_solved/[editing]leetcode_0973_K_Closest_Points_to_Origin.cpp

-6
This file was deleted.

Diff for: leetcode_solved/[editing]leetcode_1161_Maximum_Level_Sum_of_a_Binary_Tree.cpp

-15
This file was deleted.

Diff for: leetcode_solved/[editing]leetcode_1267_Count_Servers_that_Communicate.cpp

-6
This file was deleted.

Diff for: leetcode_solved/[editing]leetcode_1291_Sequential_Digits.cpp

-6
This file was deleted.

Diff for: leetcode_solved/[editing]leetcode_1338_Filter_Restaurants_by_Vegan-Friendly,_Price_and_Distance.cpp

-6
This file was deleted.

Diff for: leetcode_solved/[editing]leetcode_1343_Maximum_Product_of_Splitted_Binary_Tree.cpp

-15
This file was deleted.

Diff for: leetcode_solved/leetcode_0077_Combinations.java

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// AC: Runtime: 18 ms, faster than 62.24% of Java online submissions for Combinations.
2+
// Memory Usage: 53.6 MB, less than 5.33% of Java online submissions for Combinations.
3+
// backtracking.
4+
// T:O(C(n, k)), S:O(C(n, k) * k)
5+
//
6+
class Solution {
7+
public List<List<Integer>> combine(int n, int k) {
8+
List<List<Integer>> ret = new LinkedList<>();
9+
List<Integer> temp = new LinkedList<>();
10+
11+
backtracking(n, k, temp, ret, 1);
12+
13+
return ret;
14+
}
15+
16+
public void backtracking(int n, int k, List<Integer> path, List<List<Integer>> out, int startIndex) {
17+
List<Integer> pathCopy = new LinkedList<>(path);
18+
if (path.size() == k) {
19+
out.add(pathCopy);
20+
return;
21+
}
22+
23+
for (int i = startIndex; i <= n + pathCopy.size() - k + 1; i++) {
24+
pathCopy.add(i);
25+
backtracking(n, k, pathCopy, out, i + 1);
26+
pathCopy.remove(pathCopy.size() - 1);
27+
}
28+
}
29+
}

Diff for: leetcode_solved/leetcode_0078_Subsets.java

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// AC: Runtime: 1 ms, faster than 58.25% of Java online submissions for Subsets.
2+
// Memory Usage: 39.4 MB, less than 45.07% of Java online submissions for Subsets.
3+
// backtracking
4+
// T:O(2^n), S:O(n * 2^n)
5+
//
6+
class Solution {
7+
public List<List<Integer>> subsets(int[] nums) {
8+
List<List<Integer>> ret = new LinkedList<>();
9+
backtracking(nums, new LinkedList<>(), ret, 0);
10+
11+
return ret;
12+
}
13+
14+
private void backtracking(int[] nums, List<Integer> path, List<List<Integer>> out, int startIndex) {
15+
List<Integer> pathCopy = new LinkedList<>(path);
16+
out.add(pathCopy);
17+
if (startIndex >= nums.length) {
18+
return;
19+
}
20+
for (int i = startIndex; i < nums.length; i++) {
21+
pathCopy.add(nums[i]);
22+
backtracking(nums, pathCopy, out, i + 1);
23+
pathCopy.remove(pathCopy.size() - 1);
24+
}
25+
}
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// AC: Runtime: 16 ms, faster than 22.78% of Java online submissions for Palindrome Partitioning.
2+
// Memory Usage: 63.3 MB, less than 22.41% of Java online submissions for Palindrome Partitioning.
3+
// backtracking
4+
// T:O(2^(n - 1), S:O(n * 2^(n - 1))
5+
//
6+
class Solution {
7+
public List<List<String>> partition(String s) {
8+
List<List<String>> ret = new LinkedList<>();
9+
backtracking(s, 0, new LinkedList<>(), ret, 0);
10+
11+
return ret;
12+
}
13+
14+
private void backtracking(String s, int curLen, List<String> path, List<List<String>> out, int startIndex) {
15+
List<String> pathCopy = new LinkedList<>(path);
16+
if (curLen >= s.length()) {
17+
out.add(pathCopy);
18+
return;
19+
}
20+
21+
for (int i = startIndex; i < s.length(); i++) {
22+
if (isPalindrome(s.substring(startIndex, i + 1))) {
23+
pathCopy.add(s.substring(startIndex, i + 1));
24+
curLen += i - startIndex + 1;
25+
backtracking(s, curLen, pathCopy, out, i + 1);
26+
curLen -= i - startIndex + 1;
27+
pathCopy.remove(pathCopy.size() - 1);
28+
} else {
29+
continue;
30+
}
31+
}
32+
}
33+
34+
private boolean isPalindrome(String str) {
35+
for (int i = 0, j = str.length() - 1; i < j; i++, j--) {
36+
if (str.charAt(i) != str.charAt(j)) {
37+
return false;
38+
}
39+
}
40+
41+
return true;
42+
}
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// AC: Runtime: 4 ms, faster than 84.91% of Java online submissions for Reverse Words in a String.
2+
// Memory Usage: 38.7 MB, less than 97.68% of Java online submissions for Reverse Words in a String.
3+
// split by single space, judge if every part is empty string, record non-empty substrings, and combine substrings reverse.
4+
// T:O(n), S:O(n)
5+
//
6+
class Solution {
7+
public String reverseWords(String s) {
8+
List<String> words = new ArrayList<>();
9+
String[] arr = s.split(" ");
10+
for (String item: arr) {
11+
if (!"".equals(item)) {
12+
words.add(item);
13+
}
14+
}
15+
StringBuilder ret = new StringBuilder();
16+
int size = words.size();
17+
for (int i = size - 1; i >= 0; i--) {
18+
ret.append(words.get(i));
19+
if (i != 0) {
20+
ret.append(" ");
21+
}
22+
}
23+
24+
return ret.toString();
25+
}
26+
}
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// AC: Runtime: 1 ms, faster than 28.80% of Java online submissions for Combination Sum III.
2+
// Memory Usage: 36.9 MB, less than 30.36% of Java online submissions for Combination Sum III.
3+
// backtracking
4+
// T:O(C(n, k)), S:O(k)
5+
//
6+
class Solution {
7+
public List<List<Integer>> combinationSum3(int k, int n) {
8+
List<List<Integer>> ret = new LinkedList<>();
9+
int sum = 0;
10+
backtracking(sum, n, k, new LinkedList<>(), ret, 1);
11+
return ret;
12+
}
13+
14+
private void backtracking(int curSum, int n, int k, List<Integer> path, List<List<Integer>> out, int startIndex) {
15+
if (curSum > n) {
16+
return;
17+
}
18+
List<Integer> pathCopy = new LinkedList<>(path);
19+
if (path.size() == k) {
20+
if (curSum == n) {
21+
out.add(pathCopy);
22+
}
23+
return;
24+
}
25+
for (int i = startIndex; i <= 9 + pathCopy.size() - k + 1; i++) {
26+
curSum += i;
27+
pathCopy.add(i);
28+
backtracking(curSum, n, k, pathCopy, out, i + 1);
29+
curSum -= i;
30+
pathCopy.remove(pathCopy.size() - 1);
31+
}
32+
}
33+
}
+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// AC: Runtime: 0 ms, faster than 100.00% of Java online submissions for Odd Even Linked List.
2+
// Memory Usage: 38.6 MB, less than 60.27% of Java online submissions for Odd Even Linked List.
3+
// divide the original linked-list into odd-list and even-list, and concat even-list to end of odd-list.
4+
// T:O(n), S:O(1)
5+
//
6+
class Solution {
7+
public ListNode oddEvenList(ListNode head) {
8+
if (head != null) {
9+
ListNode odd = head, even = head.next, oddHead = odd, evenHead = even;
10+
while (even != null && even.next != null) {
11+
odd.next = odd.next.next;
12+
even.next = even.next.next;
13+
odd = odd.next;
14+
even = even.next;
15+
}
16+
odd.next = evenHead;
17+
}
18+
19+
return head;
20+
}
21+
}
22+
/**
23+
* Definition for singly-linked list.
24+
* public class ListNode {
25+
* int val;
26+
* ListNode next;
27+
* ListNode() {}
28+
* ListNode(int val) { this.val = val; }
29+
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
30+
* }
31+
*/

0 commit comments

Comments
 (0)