Skip to content

Commit 9c873b2

Browse files
committed
Updated tags and readme
1 parent dd902f7 commit 9c873b2

File tree

75 files changed

+738
-598
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+738
-598
lines changed

README.md

Lines changed: 175 additions & 175 deletions
Large diffs are not rendered by default.

src/main/csharp/g0001_0100/s0015_3sum/readme.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,40 +40,32 @@ public class Solution {
4040
Array.Sort(nums);
4141
int len = nums.Length;
4242
IList<IList<int>> result = new List<IList<int>>();
43-
4443
for (int i = 0; i < len - 2; i++) {
4544
int l = i + 1;
4645
int r = len - 1;
47-
4846
while (r > l) {
4947
int sum = nums[i] + nums[l] + nums[r];
50-
5148
if (sum < 0) {
5249
l++;
5350
} else if (sum > 0) {
5451
r--;
5552
} else {
5653
IList<int> list = new List<int> { nums[i], nums[l], nums[r] };
5754
result.Add(list);
58-
5955
while (l < r && nums[l + 1] == nums[l]) {
6056
l++;
6157
}
62-
6358
while (r > l && nums[r - 1] == nums[r]) {
6459
r--;
6560
}
66-
6761
l++;
6862
r--;
6963
}
7064
}
71-
7265
while (i < len - 1 && nums[i + 1] == nums[i]) {
7366
i++;
7467
}
7568
}
76-
7769
return result;
7870
}
7971
}

src/main/csharp/g0001_0100/s0017_letter_combinations_of_a_phone_number/readme.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,25 +45,25 @@ public class Solution {
4545
return new List<string>();
4646
}
4747
string[] letters = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
48-
IList<string> ans = new List<string>();
48+
List<string> ans = new List<string>();
4949
StringBuilder sb = new StringBuilder();
5050
FindCombinations(0, digits, letters, sb, ans);
5151
return ans;
5252
}
5353

5454
private void FindCombinations(
55-
int start, string nums, string[] letters, StringBuilder curr, IList<string> ans) {
55+
int start, string nums, string[] letters, StringBuilder curr, List<string> ans) {
5656
if (curr.Length == nums.Length) {
5757
ans.Add(curr.ToString());
5858
return;
5959
}
6060
for (int i = start; i < nums.Length; i++) {
61-
int n = int.Parse(nums[i].ToString());
61+
int n = nums[i] - '0'; // Convert char to int
6262
for (int j = 0; j < letters[n].Length; j++) {
6363
char ch = letters[n][j];
6464
curr.Append(ch);
6565
FindCombinations(i + 1, nums, letters, curr, ans);
66-
curr.Length--; // Equivalent to deleting the last character in StringBuilder
66+
curr.Remove(curr.Length - 1, 1); // Remove last character
6767
}
6868
}
6969
}

src/main/csharp/g0001_0100/s0019_remove_nth_node_from_end_of_list/readme.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ public class Solution {
6868
}
6969
RemoveNth(node.next);
7070
this.n--;
71-
7271
if (this.n == 0) {
7372
node.next = node.next.next;
7473
}

src/main/csharp/g0001_0100/s0021_merge_two_sorted_lists/readme.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ public class Solution {
5353
public ListNode MergeTwoLists(ListNode l1, ListNode l2) {
5454
ListNode list = new ListNode(-1);
5555
ListNode head = list;
56-
5756
while (l1 != null || l2 != null) {
5857
if (l1 != null && l2 != null) {
5958
if (l1.val <= l2.val) {
@@ -72,7 +71,6 @@ public class Solution {
7271
}
7372
list = list.next;
7473
}
75-
7674
return head.next;
7775
}
7876
}

src/main/csharp/g0001_0100/s0079_word_search/readme.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ public class Solution {
6868
char currChar = board[r][c];
6969
board[r][c] = '!';
7070
char nextChar = word[count];
71-
7271
if (r > 0 && board[r - 1][c] == nextChar) {
7372
if (helper(r - 1, c, board, word, count + 1)) return true;
7473
}

src/main/csharp/g0001_0100/s0084_largest_rectangle_in_histogram/readme.md

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,16 @@ Given an array of integers `heights` representing the histogram's bar height whe
3535
```csharp
3636
public class Solution {
3737
public int LargestRectangleArea(int[] heights) {
38-
int maxArea = 0, i = 0;
38+
int len = heights.Length;
39+
int maxArea = 0;
3940
Stack<int> stack = new Stack<int>();
40-
while (i <= heights.Length) {
41-
var currHeight = i == heights.Length ? 0 : heights[i];
42-
if (!stack.Any() || currHeight >= heights[stack.Peek()]) {
43-
stack.Push(i);
44-
i++;
45-
}
46-
else {
47-
int index = stack.Pop();
48-
int height = heights[index];
49-
int width = (!stack.Any()) ? i : (i - 1) - stack.Peek();
41+
for (int i = 0; i <= len; i++) {
42+
while (stack.Count > 0 && (i == len || heights[stack.Peek()] >= (i < len ? heights[i] : 0))) {
43+
int height = heights[stack.Pop()];
44+
int width = stack.Count == 0 ? i : i - stack.Peek() - 1;
5045
maxArea = Math.Max(maxArea, height * width);
5146
}
47+
stack.Push(i);
5248
}
5349
return maxArea;
5450
}

src/main/csharp/g0101_0200/s0128_longest_consecutive_sequence/readme.md

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,29 @@ You must write an algorithm that runs in `O(n)` time.
3333
```csharp
3434
public class Solution {
3535
public int LongestConsecutive(int[] nums) {
36-
if (nums.Length == 0) {
37-
return 0;
38-
}
39-
Array.Sort(nums);
40-
int max = int.MinValue;
41-
int thsMax = 1;
42-
for (int i = 0; i < nums.Length - 1; i++) {
43-
if (nums[i + 1] == nums[i] + 1) {
44-
thsMax += 1;
36+
Dictionary<int, int> mapToHighest = new(nums.Length);
37+
int best = 0;
38+
for (int i = 0; i < nums.Length; i++) {
39+
int rangeLow = 0;
40+
int rangeHigh = 0;
41+
if (mapToHighest.ContainsKey(nums[i])) {
4542
continue;
4643
}
47-
if (nums[i + 1] == nums[i]) {
48-
continue;
44+
if (mapToHighest.TryGetValue(nums[i]-1, out var downCount)) {
45+
rangeLow = downCount;
46+
}
47+
if (mapToHighest.TryGetValue(nums[i]+1, out var upCount)) {
48+
rangeHigh = upCount;
49+
}
50+
int thisSum = rangeLow + rangeHigh + 1;
51+
mapToHighest[nums[i] - rangeLow] = thisSum;
52+
mapToHighest[nums[i] + rangeHigh] = thisSum;
53+
if (rangeLow != 0 && rangeHigh != 0) {
54+
mapToHighest[nums[i]] = 1;
4955
}
50-
// Start of a new Sequene
51-
max = Math.Max(max, thsMax);
52-
thsMax = 1;
56+
best = Math.Max(thisSum, best);
5357
}
54-
return Math.Max(max, thsMax);
58+
return best;
5559
}
5660
}
5761
```

src/main/elixir/g0001_0100/s0064_minimum_path_sum/readme.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,20 @@ Given a `m x n` `grid` filled with non-negative numbers, find a path from top le
3636

3737
```elixir
3838
defmodule Solution do
39-
@spec min_path_sum(grid :: [[integer]]) :: integer
40-
def min_path_sum(grid) do
41-
grid_width = length(hd(grid)) # Determine the number of columns in the grid
42-
traverse(grid, [0 | List.duplicate(:infinity, grid_width - 1)])
43-
end
44-
45-
defp traverse([], prev_row), do: Enum.at(prev_row, -1)
46-
defp traverse([[first | row] | rows], [prev_row_head | prev_row]) do
47-
prev_row = traverse_row(row, prev_row, [first + prev_row_head])
48-
traverse(rows, prev_row)
49-
end
50-
51-
defp traverse_row([], _prev_row, acc), do: Enum.reverse(acc)
52-
defp traverse_row([head | tail], [top | prev_row], [prev | _rest] = acc) do
53-
traverse_row(tail, prev_row, [head + min(prev, top) | acc])
54-
end
39+
@spec min_path_sum(grid :: [[integer]]) :: integer
40+
def min_path_sum(grid) do
41+
traverse(grid, [0 | List.duplicate(20000, 199)])
42+
end
43+
44+
defp traverse([], prev_row), do: Enum.at(prev_row, -1)
45+
defp traverse([[first | row] | rows], [prev_row_head | prev_row]) do
46+
prev_row = traverse_row(row, prev_row, [first + prev_row_head])
47+
traverse(rows, prev_row)
48+
end
49+
50+
defp traverse_row([], _prev_row, acc), do: Enum.reverse(acc)
51+
defp traverse_row([head | tail], [top | prev_row], [prev | _rest] = acc) do
52+
traverse_row(tail, prev_row, [head + min(prev, top) | acc])
53+
end
5554
end
5655
```

src/main/go/g0001_0100/s0002_add_two_numbers/readme.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
5656
dummyHead := &ListNode{}
5757
p, q, curr := l1, l2, dummyHead
5858
carry := 0
59-
6059
for p != nil || q != nil {
6160
x, y := 0, 0
6261
if p != nil {
@@ -67,17 +66,14 @@ func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
6766
y = q.Val
6867
q = q.Next
6968
}
70-
7169
sum := carry + x + y
7270
carry = sum / 10
7371
curr.Next = &ListNode{Val: sum % 10}
7472
curr = curr.Next
7573
}
76-
7774
if carry > 0 {
7875
curr.Next = &ListNode{Val: carry}
7976
}
80-
8177
return dummyHead.Next
8278
}
8379
```

0 commit comments

Comments
 (0)