diff --git a/src/main/java/g0001_0100/s0068_text_justification/Solution.java b/src/main/java/g0001_0100/s0068_text_justification/Solution.java index 8462e41a1..fad81ce8a 100644 --- a/src/main/java/g0001_0100/s0068_text_justification/Solution.java +++ b/src/main/java/g0001_0100/s0068_text_justification/Solution.java @@ -44,9 +44,8 @@ public List fullJustify(String[] words, int maxWidth) { sb.append(' '); } // appending the rest of the required spaces - for (int k = 0; k < (maxWidth - lineTotal) / (numWordsOnLine - 1); k++) { - sb.append(' '); - } + int max = Math.max(0, (maxWidth - lineTotal) / (numWordsOnLine - 1)); + sb.append(" ".repeat(max)); } // appending the last word of the line sb.append(words[startWord + numWordsOnLine - 1]); diff --git a/src/main/java/g0201_0300/s0297_serialize_and_deserialize_binary_tree/Codec.java b/src/main/java/g0201_0300/s0297_serialize_and_deserialize_binary_tree/Codec.java index 53bf0e0bf..18ad4e704 100644 --- a/src/main/java/g0201_0300/s0297_serialize_and_deserialize_binary_tree/Codec.java +++ b/src/main/java/g0201_0300/s0297_serialize_and_deserialize_binary_tree/Codec.java @@ -36,11 +36,7 @@ public void serialize(TreeNode root, StringBuilder sb) { return; } String s = Integer.toHexString(root.val + BASE_OFFSET); - StringBuilder sb2 = new StringBuilder(); - for (int i = 0; i < 3 - s.length(); i++) { - sb2.append('0'); - } - sb2.append(s); + String sb2 = "0".repeat(Math.max(0, 3 - s.length())) + s; sb.append(sb2); serialize(root.left, sb); serialize(root.right, sb); diff --git a/src/main/java/g0401_0500/s0451_sort_characters_by_frequency/Solution.java b/src/main/java/g0401_0500/s0451_sort_characters_by_frequency/Solution.java index a36a38a5b..85e598d31 100644 --- a/src/main/java/g0401_0500/s0451_sort_characters_by_frequency/Solution.java +++ b/src/main/java/g0401_0500/s0451_sort_characters_by_frequency/Solution.java @@ -27,9 +27,7 @@ public String frequencySort(String s) { for (Map.Entry> freq : reverseMap.entrySet()) { List list = reverseMap.get(freq.getKey()); for (char c : list) { - for (int i = 0; i < freq.getKey(); i++) { - sb.append(c); - } + sb.append(String.valueOf(c).repeat(Math.max(0, freq.getKey()))); } } return sb.toString(); diff --git a/src/main/java/g0401_0500/s0494_target_sum/Solution.java b/src/main/java/g0401_0500/s0494_target_sum/Solution.java index bef704a88..71f6176b8 100644 --- a/src/main/java/g0401_0500/s0494_target_sum/Solution.java +++ b/src/main/java/g0401_0500/s0494_target_sum/Solution.java @@ -6,9 +6,8 @@ public class Solution { public int findTargetSumWays(int[] nums, int target) { int totalSum = 0; - int n = nums.length; - for (int i = 0; i < n; i++) { - totalSum += nums[i]; + for (int num : nums) { + totalSum += num; } int sum = totalSum - target; if (sum < 0 || sum % 2 == 1) { diff --git a/src/main/java/g0701_0800/s0753_cracking_the_safe/Solution.java b/src/main/java/g0701_0800/s0753_cracking_the_safe/Solution.java index b1614575c..64eab3ed1 100644 --- a/src/main/java/g0701_0800/s0753_cracking_the_safe/Solution.java +++ b/src/main/java/g0701_0800/s0753_cracking_the_safe/Solution.java @@ -12,9 +12,7 @@ public String crackSafe(int n, int k) { visited[0] = true; int visitedCnt = 1; StringBuilder crackStr = new StringBuilder(); - for (int i = 0; i < n; i++) { - crackStr.append('0'); - } + crackStr.append("0".repeat(Math.max(0, n))); dfsAddPwd(n, k, crackStr, 0, visited, visitedCnt, targetCnt); return foundStr; } diff --git a/src/main/java/g0901_1000/s0972_equal_rational_numbers/Solution.java b/src/main/java/g0901_1000/s0972_equal_rational_numbers/Solution.java index 13e8b3539..842b8c763 100644 --- a/src/main/java/g0901_1000/s0972_equal_rational_numbers/Solution.java +++ b/src/main/java/g0901_1000/s0972_equal_rational_numbers/Solution.java @@ -29,10 +29,6 @@ public boolean isRationalEqual(String s, String t) { } private String repeat(String a) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < 100; i++) { - sb.append(a); - } - return sb.toString(); + return String.valueOf(a).repeat(100); } } diff --git a/src/main/java/g1101_1200/s1138_alphabet_board_path/Solution.java b/src/main/java/g1101_1200/s1138_alphabet_board_path/Solution.java index c8e364ebc..8f6b70c56 100644 --- a/src/main/java/g1101_1200/s1138_alphabet_board_path/Solution.java +++ b/src/main/java/g1101_1200/s1138_alphabet_board_path/Solution.java @@ -35,9 +35,7 @@ public String alphabetBoardPath(String target) { public StringBuilder helper(String dir, int time) { StringBuilder path = new StringBuilder(); - for (int i = 0; i < time; i++) { - path.append(dir); - } + path.append(String.valueOf(dir).repeat(Math.max(0, time))); return path; } } diff --git a/src/main/java/g1501_1600/s1592_rearrange_spaces_between_words/Solution.java b/src/main/java/g1501_1600/s1592_rearrange_spaces_between_words/Solution.java index 14f2a02fd..20e62ab4f 100644 --- a/src/main/java/g1501_1600/s1592_rearrange_spaces_between_words/Solution.java +++ b/src/main/java/g1501_1600/s1592_rearrange_spaces_between_words/Solution.java @@ -12,11 +12,7 @@ public String reorderSpaces(String text) { } String[] words = text.trim().split("\\s+"); if (words.length == 1) { - StringBuilder sb = new StringBuilder(words[0]); - for (int i = 0; i < spaceCount; i++) { - sb.append(" "); - } - return sb.toString(); + return words[0] + " ".repeat(Math.max(0, spaceCount)); } int trailingSpaces = spaceCount % (words.length - 1); int newSpaces = spaceCount / (words.length - 1); @@ -24,13 +20,9 @@ public String reorderSpaces(String text) { for (int j = 0; j < words.length; j++) { sb.append(words[j]); if (j < words.length - 1) { - for (int i = 0; i < newSpaces; i++) { - sb.append(" "); - } + sb.append(" ".repeat(Math.max(0, newSpaces))); } else { - for (int i = 0; i < trailingSpaces; i++) { - sb.append(" "); - } + sb.append(" ".repeat(Math.max(0, trailingSpaces))); } } return sb.toString(); diff --git a/src/main/java/g1601_1700/s1643_kth_smallest_instructions/Solution.java b/src/main/java/g1601_1700/s1643_kth_smallest_instructions/Solution.java index ffaca6cb9..f76372ce7 100644 --- a/src/main/java/g1601_1700/s1643_kth_smallest_instructions/Solution.java +++ b/src/main/java/g1601_1700/s1643_kth_smallest_instructions/Solution.java @@ -19,14 +19,10 @@ public String kthSmallestPath(int[] destination, int k) { k -= range; } if (v == 0) { - for (int i = 1; i <= n; i++) { - sb.append('H'); - } + sb.append("H".repeat(Math.max(0, n))); break; } else if (v == n) { - for (int i = 1; i <= v; i++) { - sb.append('V'); - } + sb.append("V".repeat(Math.max(0, v))); break; } } diff --git a/src/main/java/g1701_1800/s1764_form_array_by_concatenating_subarrays_of_another_array/Solution.java b/src/main/java/g1701_1800/s1764_form_array_by_concatenating_subarrays_of_another_array/Solution.java index e64a88dc9..2b1f59592 100644 --- a/src/main/java/g1701_1800/s1764_form_array_by_concatenating_subarrays_of_another_array/Solution.java +++ b/src/main/java/g1701_1800/s1764_form_array_by_concatenating_subarrays_of_another_array/Solution.java @@ -7,17 +7,17 @@ public class Solution { public boolean canChoose(int[][] groups, int[] nums) { int prev = 0; - for (int i = 0; i < groups.length; i++) { - int[] temp = new int[groups[i].length]; - if (prev + groups[i].length > nums.length) { + for (int[] group : groups) { + int[] temp = new int[group.length]; + if (prev + group.length > nums.length) { return false; } int index = 0; int j; - for (j = prev; j < prev + groups[i].length; j++) { + for (j = prev; j < prev + group.length; j++) { temp[index++] = nums[j]; } - if (Arrays.equals(temp, groups[i])) { + if (Arrays.equals(temp, group)) { prev = j; continue; } @@ -28,7 +28,7 @@ public boolean canChoose(int[][] groups, int[] nums) { temp[l] = temp[l + 1]; } temp[l] = nums[k]; - if (Arrays.equals(temp, groups[i])) { + if (Arrays.equals(temp, group)) { prev = k + 1; break; } diff --git a/src/main/java/g2001_2100/s2096_step_by_step_directions_from_a_binary_tree_node_to_another/Solution.java b/src/main/java/g2001_2100/s2096_step_by_step_directions_from_a_binary_tree_node_to_another/Solution.java index 797b46259..e4c6e7745 100644 --- a/src/main/java/g2001_2100/s2096_step_by_step_directions_from_a_binary_tree_node_to_another/Solution.java +++ b/src/main/java/g2001_2100/s2096_step_by_step_directions_from_a_binary_tree_node_to_another/Solution.java @@ -15,7 +15,7 @@ private boolean find(TreeNode n, int val, StringBuilder sb) { } else if (n.right != null && find(n.right, val, sb)) { sb.append("R"); } - return sb.length() > 0; + return !sb.isEmpty(); } public String getDirections(TreeNode root, int startValue, int destValue) { @@ -28,11 +28,6 @@ public String getDirections(TreeNode root, int startValue, int destValue) { while (i < maxI && s.charAt(s.length() - i - 1) == d.charAt(d.length() - i - 1)) { ++i; } - StringBuilder result = new StringBuilder(); - for (int j = 0; j < s.length() - i; j++) { - result.append("U"); - } - result.append(d.reverse().substring(i)); - return result.toString(); + return "U".repeat(Math.max(0, s.length() - i)) + d.reverse().substring(i); } } diff --git a/src/main/java/g2301_2400/s2318_number_of_distinct_roll_sequences/Solution.java b/src/main/java/g2301_2400/s2318_number_of_distinct_roll_sequences/Solution.java index beca62187..91c6cd805 100644 --- a/src/main/java/g2301_2400/s2318_number_of_distinct_roll_sequences/Solution.java +++ b/src/main/java/g2301_2400/s2318_number_of_distinct_roll_sequences/Solution.java @@ -3,9 +3,8 @@ // #Hard #Dynamic_Programming #Memoization #2022_06_26_Time_254_ms_(91.67%)_Space_51.6_MB_(58.33%) public class Solution { - private int[][][] memo = new int[10001][7][7]; - private int mod = 1000000007; - private int[][] m = { + private static final int MOD = 1000000007; + private static final int[][] M = { {1, 2, 3, 4, 5, 6}, {2, 3, 4, 5, 6}, {1, 3, 5}, @@ -14,6 +13,7 @@ public class Solution { {1, 2, 3, 4, 6}, {1, 5} }; + private final int[][][] memo = new int[10001][7][7]; public int distinctSequences(int n) { return dp(n, 0, 0); @@ -27,9 +27,9 @@ private int dp(int n, int prev, int pprev) { return memo[n][prev][pprev]; } int ans = 0; - for (int x : m[prev]) { + for (int x : M[prev]) { if (x != pprev) { - ans = (ans + dp(n - 1, x, prev)) % mod; + ans = (ans + dp(n - 1, x, prev)) % MOD; } } memo[n][prev][pprev] = ans; diff --git a/src/main/java/g2301_2400/s2365_task_scheduler_ii/Solution.java b/src/main/java/g2301_2400/s2365_task_scheduler_ii/Solution.java index c9b8c3a4b..35b1ebd60 100644 --- a/src/main/java/g2301_2400/s2365_task_scheduler_ii/Solution.java +++ b/src/main/java/g2301_2400/s2365_task_scheduler_ii/Solution.java @@ -9,15 +9,15 @@ public long taskSchedulerII(int[] tasks, int space) { long days = 0; space++; HashMap lastOccurence = new HashMap<>(); - for (int i = 0; i < tasks.length; i++) { - if (lastOccurence.containsKey(tasks[i])) { - long lastTimeOccurred = lastOccurence.get(tasks[i]); + for (int task : tasks) { + if (lastOccurence.containsKey(task)) { + long lastTimeOccurred = lastOccurence.get(task); long daysDifference = days - lastTimeOccurred; if (daysDifference < space) { days += (space - daysDifference); } } - lastOccurence.put(tasks[i], days); + lastOccurence.put(task, days); days++; } return days; diff --git a/src/main/java/g2401_2500/s2441_largest_positive_integer_that_exists_with_its_negative/Solution.java b/src/main/java/g2401_2500/s2441_largest_positive_integer_that_exists_with_its_negative/Solution.java index bb4bb1e48..677713361 100644 --- a/src/main/java/g2401_2500/s2441_largest_positive_integer_that_exists_with_its_negative/Solution.java +++ b/src/main/java/g2401_2500/s2441_largest_positive_integer_that_exists_with_its_negative/Solution.java @@ -8,9 +8,9 @@ public class Solution { public int findMaxK(int[] nums) { int[] arr = new int[nums.length]; int j = 0; - for (int i = 0; i < nums.length; i++) { - if (nums[i] < 0) { - arr[j++] = nums[i]; + for (int k : nums) { + if (k < 0) { + arr[j++] = k; } } Arrays.sort(arr); diff --git a/src/main/java/g2401_2500/s2500_delete_greatest_value_in_each_row/Solution.java b/src/main/java/g2401_2500/s2500_delete_greatest_value_in_each_row/Solution.java index b07d38a6a..c06b0d35a 100644 --- a/src/main/java/g2401_2500/s2500_delete_greatest_value_in_each_row/Solution.java +++ b/src/main/java/g2401_2500/s2500_delete_greatest_value_in_each_row/Solution.java @@ -7,14 +7,14 @@ public class Solution { public int deleteGreatestValue(int[][] grid) { int sum = 0; - for (int i = 0; i < grid.length; i++) { - Arrays.sort(grid[i]); + for (int[] value : grid) { + Arrays.sort(value); } for (int j = 0; j < grid[0].length; j++) { int max = Integer.MIN_VALUE; - for (int i = 0; i < grid.length; i++) { - if (grid[i][j] > max) { - max = grid[i][j]; + for (int[] ints : grid) { + if (ints[j] > max) { + max = ints[j]; } } sum += max; diff --git a/src/main/java/g2501_2600/s2598_smallest_missing_non_negative_integer_after_operations/Solution.java b/src/main/java/g2501_2600/s2598_smallest_missing_non_negative_integer_after_operations/Solution.java index bf350b3cc..ec29c8c40 100644 --- a/src/main/java/g2501_2600/s2598_smallest_missing_non_negative_integer_after_operations/Solution.java +++ b/src/main/java/g2501_2600/s2598_smallest_missing_non_negative_integer_after_operations/Solution.java @@ -9,8 +9,8 @@ public int findSmallestInteger(int[] nums, int value) { return n; } int[] a = new int[value]; - for (int i = 0; i < n; i++) { - int k = nums[i] % value; + for (int num : nums) { + int k = num % value; if (k < 0) { k = (value + k) % value; } diff --git a/src/main/java/g2601_2700/s2661_first_completely_painted_row_or_column/Solution.java b/src/main/java/g2601_2700/s2661_first_completely_painted_row_or_column/Solution.java index fb5a03417..5097e691c 100644 --- a/src/main/java/g2601_2700/s2661_first_completely_painted_row_or_column/Solution.java +++ b/src/main/java/g2601_2700/s2661_first_completely_painted_row_or_column/Solution.java @@ -9,18 +9,18 @@ public int firstCompleteIndex(int[] arr, int[][] mat) { numMapIndex[arr[i]] = i; } int ans = Integer.MAX_VALUE; - for (int i = 0; i < mat.length; i++) { + for (int[] value : mat) { int rowMin = Integer.MIN_VALUE; - for (int i1 = 0; i1 < mat[i].length; i1++) { - int index = numMapIndex[mat[i][i1]]; + for (int i : value) { + int index = numMapIndex[i]; rowMin = Math.max(rowMin, index); } ans = Math.min(ans, rowMin); } for (int i = 0; i < mat[0].length; i++) { int colMin = Integer.MIN_VALUE; - for (int i1 = 0; i1 < mat.length; i1++) { - int index = numMapIndex[mat[i1][i]]; + for (int[] ints : mat) { + int index = numMapIndex[ints[i]]; colMin = Math.max(colMin, index); } ans = Math.min(ans, colMin); diff --git a/src/main/java/g2701_2800/s2799_count_complete_subarrays_in_an_array/Solution.java b/src/main/java/g2701_2800/s2799_count_complete_subarrays_in_an_array/Solution.java index a43e231e7..44afe3626 100644 --- a/src/main/java/g2701_2800/s2799_count_complete_subarrays_in_an_array/Solution.java +++ b/src/main/java/g2701_2800/s2799_count_complete_subarrays_in_an_array/Solution.java @@ -18,16 +18,16 @@ public int countCompleteSubarrays(int[] nums) { map[nums[i]]++; } int ans = 0; - for (int i = 0; i < n; ++i) { + for (int num : nums) { ans += n - last; - map[nums[i]]--; - if (map[nums[i]] == 0) { + map[num]--; + if (map[num] == 0) { int possLast = 0; - for (int j = last + 1; j < n && map[nums[i]] == 0; ++j) { + for (int j = last + 1; j < n && map[num] == 0; ++j) { map[nums[j]]++; possLast = j; } - if (map[nums[i]] > 0) { + if (map[num] > 0) { last = possLast; } else { break; diff --git a/src/main/java/g2801_2900/s2899_last_visited_integers/Solution.java b/src/main/java/g2801_2900/s2899_last_visited_integers/Solution.java index dd96a8706..83029f264 100644 --- a/src/main/java/g2801_2900/s2899_last_visited_integers/Solution.java +++ b/src/main/java/g2801_2900/s2899_last_visited_integers/Solution.java @@ -10,10 +10,10 @@ public List lastVisitedIntegers(List words) { List prevEle = new ArrayList<>(); List res = new ArrayList<>(); int count = 0; - for (int i = 0; i < words.size(); i++) { - if (!words.get(i).equals("prev")) { + for (String word : words) { + if (!word.equals("prev")) { count = 0; - prevEle.add(words.get(i)); + prevEle.add(word); continue; } if (count >= prevEle.size()) { diff --git a/src/main/java/g3101_3200/s3122_minimum_number_of_operations_to_satisfy_conditions/Solution.java b/src/main/java/g3101_3200/s3122_minimum_number_of_operations_to_satisfy_conditions/Solution.java index 08adf8ca1..2d630d16c 100644 --- a/src/main/java/g3101_3200/s3122_minimum_number_of_operations_to_satisfy_conditions/Solution.java +++ b/src/main/java/g3101_3200/s3122_minimum_number_of_operations_to_satisfy_conditions/Solution.java @@ -9,9 +9,9 @@ public int minimumOperations(int[][] grid) { int m = grid[0].length; int[][] dp = new int[m][10]; int[][] cnt = new int[m][10]; - for (int i = 0; i < n; ++i) { + for (int[] ints : grid) { for (int j = 0; j < m; j++) { - cnt[j][grid[i][j]]++; + cnt[j][ints[j]]++; } } int first = Integer.MAX_VALUE; diff --git a/src/main/java/g3101_3200/s3138_minimum_length_of_anagram_concatenation/Solution.java b/src/main/java/g3101_3200/s3138_minimum_length_of_anagram_concatenation/Solution.java index 7396ef46a..1092e98ef 100644 --- a/src/main/java/g3101_3200/s3138_minimum_length_of_anagram_concatenation/Solution.java +++ b/src/main/java/g3101_3200/s3138_minimum_length_of_anagram_concatenation/Solution.java @@ -20,8 +20,7 @@ public int minAnagramLength(String s) { } List factors = getAllFactorsVer2(n); Collections.sort(factors); - for (int j = 0; j < factors.size(); j++) { - int factor = factors.get(j); + for (int factor : factors) { if (factor == 1) { if (sq[0] * n == sq[n - 1]) { return 1; diff --git a/src/main/java/g3101_3200/s3164_find_the_number_of_good_pairs_ii/Solution.java b/src/main/java/g3101_3200/s3164_find_the_number_of_good_pairs_ii/Solution.java index eab02544a..af0cab07a 100644 --- a/src/main/java/g3101_3200/s3164_find_the_number_of_good_pairs_ii/Solution.java +++ b/src/main/java/g3101_3200/s3164_find_the_number_of_good_pairs_ii/Solution.java @@ -11,20 +11,19 @@ public long numberOfPairs(int[] nums1, int[] nums2, int k) { for (int val : nums2) { hm.put(val * k, hm.getOrDefault(val * k, 0) + 1); } - for (int indx = 0; indx < nums1.length; indx++) { - if (nums1[indx] % k != 0) { + for (int i : nums1) { + if (i % k != 0) { continue; } - for (int factor = 1; factor * factor <= nums1[indx]; factor++) { - if (nums1[indx] % factor != 0) { + for (int factor = 1; factor * factor <= i; factor++) { + if (i % factor != 0) { continue; } - int factor1 = factor; - int factor2 = nums1[indx] / factor; - if (hm.containsKey(factor1)) { - ans += hm.get(factor1); + int factor2 = i / factor; + if (hm.containsKey(factor)) { + ans += hm.get(factor); } - if (factor1 != factor2 && hm.containsKey(factor2)) { + if (factor != factor2 && hm.containsKey(factor2)) { ans += hm.get(factor2); } } diff --git a/src/main/java/g3101_3200/s3165_maximum_sum_of_subsequence_with_non_adjacent_elements/Solution.java b/src/main/java/g3101_3200/s3165_maximum_sum_of_subsequence_with_non_adjacent_elements/Solution.java index 495edb1ac..5ebb23298 100644 --- a/src/main/java/g3101_3200/s3165_maximum_sum_of_subsequence_with_non_adjacent_elements/Solution.java +++ b/src/main/java/g3101_3200/s3165_maximum_sum_of_subsequence_with_non_adjacent_elements/Solution.java @@ -13,8 +13,8 @@ public class Solution { public int maximumSumSubsequence(int[] nums, int[][] queries) { long[][] tree = build(nums); long result = 0; - for (int i = 0; i < queries.length; ++i) { - result += set(tree, queries[i][0], queries[i][1]); + for (int[] query : queries) { + result += set(tree, query[0], query[1]); result %= MOD; } return (int) result; diff --git a/src/main/java/g3101_3200/s3190_find_minimum_operations_to_make_all_elements_divisible_by_three/Solution.java b/src/main/java/g3101_3200/s3190_find_minimum_operations_to_make_all_elements_divisible_by_three/Solution.java index 8577ff787..af2284d84 100644 --- a/src/main/java/g3101_3200/s3190_find_minimum_operations_to_make_all_elements_divisible_by_three/Solution.java +++ b/src/main/java/g3101_3200/s3190_find_minimum_operations_to_make_all_elements_divisible_by_three/Solution.java @@ -5,8 +5,8 @@ public class Solution { public int minimumOperations(int[] nums) { int count = 0; - for (int i = 0; i < nums.length; i++) { - if (nums[i] % 3 != 0) { + for (int num : nums) { + if (num % 3 != 0) { count++; } } diff --git a/src/main/java/g3301_3400/s3305_count_of_substrings_containing_every_vowel_and_k_consonants_i/Solution.java b/src/main/java/g3301_3400/s3305_count_of_substrings_containing_every_vowel_and_k_consonants_i/Solution.java index 497e6b6c5..6d04af276 100644 --- a/src/main/java/g3301_3400/s3305_count_of_substrings_containing_every_vowel_and_k_consonants_i/Solution.java +++ b/src/main/java/g3301_3400/s3305_count_of_substrings_containing_every_vowel_and_k_consonants_i/Solution.java @@ -15,7 +15,7 @@ public int countOfSubstrings(String word, int k) { int ans = 0; int consCnt = 0; int j = 0; - for (int i = 0; i < arr.length; i++) { + for (char c : arr) { while (j < arr.length && (need > 0 || consCnt < k)) { if (isVowel(arr[j])) { map[arr[j] - 'a']--; @@ -39,9 +39,9 @@ public int countOfSubstrings(String word, int k) { m++; } } - if (isVowel(arr[i])) { - map[arr[i] - 'a']++; - if (map[arr[i] - 'a'] == 1) { + if (isVowel(c)) { + map[c - 'a']++; + if (map[c - 'a'] == 1) { need++; } } else { diff --git a/src/main/java/g3301_3400/s3394_check_if_grid_can_be_cut_into_sections/Solution.java b/src/main/java/g3301_3400/s3394_check_if_grid_can_be_cut_into_sections/Solution.java index 203f5428b..8944dafaa 100644 --- a/src/main/java/g3301_3400/s3394_check_if_grid_can_be_cut_into_sections/Solution.java +++ b/src/main/java/g3301_3400/s3394_check_if_grid_can_be_cut_into_sections/Solution.java @@ -29,12 +29,12 @@ private boolean validate(long[] arr) { int cut = 0; int n = arr.length; int max = (int) arr[0] & MASK; - for (int i = 0; i < n; i++) { - int start = (int) (arr[i] >> 32); + for (long l : arr) { + int start = (int) (l >> 32); if (start >= max && ++cut == 2) { return true; } - max = Math.max(max, (int) (arr[i] & MASK)); + max = Math.max(max, (int) (l & MASK)); } return false; } diff --git a/src/main/java/g3401_3500/s3433_count_mentions_per_user/Solution.java b/src/main/java/g3401_3500/s3433_count_mentions_per_user/Solution.java index 3e971a0da..1f7d2ebb3 100644 --- a/src/main/java/g3401_3500/s3433_count_mentions_per_user/Solution.java +++ b/src/main/java/g3401_3500/s3433_count_mentions_per_user/Solution.java @@ -10,30 +10,30 @@ public int[] countMentions(int numberOfUsers, List> events) { int[] ans = new int[numberOfUsers]; List l = new ArrayList<>(); int c = 0; - for (int i = 0; i < events.size(); i++) { - String s = events.get(i).get(0); - String ss = events.get(i).get(2); + for (List strings : events) { + String s = strings.get(0); + String ss = strings.get(2); if (s.equals("MESSAGE")) { if (ss.equals("ALL") || ss.equals("HERE")) { c++; if (ss.equals("HERE")) { - l.add(Integer.parseInt(events.get(i).get(1))); + l.add(Integer.parseInt(strings.get(1))); } } else { String[] sss = ss.split(" "); - for (int j = 0; j < sss.length; j++) { - int jj = Integer.parseInt(sss[j].substring(2, sss[j].length())); + for (String string : sss) { + int jj = Integer.parseInt(string.substring(2)); ans[jj]++; } } } } - for (int i = 0; i < events.size(); i++) { - if (events.get(i).get(0).equals("OFFLINE")) { - int id = Integer.parseInt(events.get(i).get(2)); - int a = Integer.parseInt(events.get(i).get(1)) + 60; - for (int j = 0; j < l.size(); j++) { - if (l.get(j) >= a - 60 && l.get(j) < a) { + for (List event : events) { + if (event.get(0).equals("OFFLINE")) { + int id = Integer.parseInt(event.get(2)); + int a = Integer.parseInt(event.get(1)) + 60; + for (Integer integer : l) { + if (integer >= a - 60 && integer < a) { ans[id]--; } } diff --git a/src/main/java/g3401_3500/s3477_fruits_into_baskets_ii/Solution.java b/src/main/java/g3401_3500/s3477_fruits_into_baskets_ii/Solution.java index 09f39b948..bcec2359a 100644 --- a/src/main/java/g3401_3500/s3477_fruits_into_baskets_ii/Solution.java +++ b/src/main/java/g3401_3500/s3477_fruits_into_baskets_ii/Solution.java @@ -8,8 +8,8 @@ public int numOfUnplacedFruits(int[] fruits, int[] baskets) { int n = fruits.length; int currfruits; int count = 0; - for (int i = 0; i < n; i++) { - currfruits = fruits[i]; + for (int fruit : fruits) { + currfruits = fruit; for (int j = 0; j < n; j++) { if (baskets[j] >= currfruits) { count++; diff --git a/src/main/java/g3501_3600/s3558_number_of_ways_to_assign_edge_weights_i/Solution.java b/src/main/java/g3501_3600/s3558_number_of_ways_to_assign_edge_weights_i/Solution.java index f06a99310..241886584 100644 --- a/src/main/java/g3501_3600/s3558_number_of_ways_to_assign_edge_weights_i/Solution.java +++ b/src/main/java/g3501_3600/s3558_number_of_ways_to_assign_edge_weights_i/Solution.java @@ -3,14 +3,14 @@ // #Medium #Math #Depth_First_Search #Tree #2025_05_27_Time_12_ms_(100.00%)_Space_106.62_MB_(76.01%) public class Solution { - private static int mod = (int) 1e9 + 7; - private long[] pow2 = new long[100001]; + private static final int MOD = (int) 1e9 + 7; + private final long[] pow2 = new long[100001]; public int assignEdgeWeights(int[][] edges) { if (pow2[0] == 0) { pow2[0] = 1; for (int i = 1; i < pow2.length; i++) { - pow2[i] = (pow2[i - 1] << 1) % mod; + pow2[i] = (pow2[i - 1] << 1) % MOD; } } int n = edges.length + 1; diff --git a/src/main/java/g3501_3600/s3575_maximum_good_subtree_score/Solution.java b/src/main/java/g3501_3600/s3575_maximum_good_subtree_score/Solution.java index 0d51fce52..685f3f626 100644 --- a/src/main/java/g3501_3600/s3575_maximum_good_subtree_score/Solution.java +++ b/src/main/java/g3501_3600/s3575_maximum_good_subtree_score/Solution.java @@ -9,10 +9,10 @@ @SuppressWarnings("unchecked") public class Solution { - private int digits = 10; - private int full = 1 << digits; - private long neg = Long.MIN_VALUE / 4; - private long mod = (long) 1e9 + 7; + private static final int DIGITS = 10; + private static final int FULL = 1 << DIGITS; + private static final long NEG = Long.MIN_VALUE / 4; + private static final long MOD = (long) 1e9 + 7; private List[] tree; private int[] val; private int[] mask; @@ -47,24 +47,24 @@ public int goodSubtreeSum(int[] vals, int[] par) { tree[par[i]].add(i); } dfs(root); - return (int) (res % mod); + return (int) (res % MOD); } private long[] dfs(int u) { - long[] dp = new long[full]; - Arrays.fill(dp, neg); + long[] dp = new long[FULL]; + Arrays.fill(dp, NEG); dp[0] = 0; if (isOk[u]) { dp[mask[u]] = val[u]; } for (int v : tree[u]) { long[] child = dfs(v); - long[] newDp = Arrays.copyOf(dp, full); - for (int m1 = 0; m1 < full; m1++) { + long[] newDp = Arrays.copyOf(dp, FULL); + for (int m1 = 0; m1 < FULL; m1++) { if (dp[m1] < 0) { continue; } - int remain = full - 1 - m1; + int remain = FULL - 1 - m1; for (int m2 = remain; m2 > 0; m2 = (m2 - 1) & remain) { if (child[m2] < 0) { continue; @@ -79,7 +79,7 @@ private long[] dfs(int u) { for (long v : dp) { best = Math.max(best, v); } - res = (res + best) % mod; + res = (res + best) % MOD; return dp; } }