Skip to content

Commit d25ebb8

Browse files
authored
Improved task 1829.
1 parent eace8e6 commit d25ebb8

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2245,7 +2245,7 @@ implementation 'com.github.javadev:leetcode-in-java:1.11'
22452245
| 1833 |[Maximum Ice Cream Bars](src.save/main/java/g1801_1900/s1833_maximum_ice_cream_bars/Solution.java)| Medium | Array, Sorting, Greedy | 39 | 84.49
22462246
| 1832 |[Check if the Sentence Is Pangram](src.save/main/java/g1801_1900/s1832_check_if_the_sentence_is_pangram/Solution.java)| Easy | String, Hash_Table | 3 | 41.29
22472247
| 1830 |[Minimum Number of Operations to Make String Sorted](src.save/main/java/g1801_1900/s1830_minimum_number_of_operations_to_make_string_sorted/Solution.java)| Hard | String, Math, Combinatorics | 125 | 94.12
2248-
| 1829 |[Maximum XOR for Each Query](src.save/main/java/g1801_1900/s1829_maximum_xor_for_each_query/Solution.java)| Medium | Array, Bit_Manipulation, Prefix_Sum | 7 | 20.94
2248+
| 1829 |[Maximum XOR for Each Query](src.save/main/java/g1801_1900/s1829_maximum_xor_for_each_query/Solution.java)| Medium | Array, Bit_Manipulation, Prefix_Sum | 5 | 61.24
22492249
| 1828 |[Queries on Number of Points Inside a Circle](src.save/main/java/g1801_1900/s1828_queries_on_number_of_points_inside_a_circle/Solution.java)| Medium | Array, Math, Geometry | 23 | 75.03
22502250
| 1827 |[Minimum Operations to Make the Array Increasing](src.save/main/java/g1801_1900/s1827_minimum_operations_to_make_the_array_increasing/Solution.java)| Easy | Array, Greedy | 4 | 35.67
22512251
| 1825 |[Finding MK Average](src.save/main/java/g1801_1900/s1825_finding_mk_average/MKAverage.java)| Hard | Design, Heap_Priority_Queue, Ordered_Set, Queue | 83 | 60.59
@@ -2913,7 +2913,7 @@ implementation 'com.github.javadev:leetcode-in-java:1.11'
29132913
| 0949 |[Largest Time for Given Digits](src.save/main/java/g0901_1000/s0949_largest_time_for_given_digits/Solution.java)| Medium | String, Enumeration | 3 | 91.21
29142914
| 0948 |[Bag of Tokens](src.save/main/java/g0901_1000/s0948_bag_of_tokens/Solution.java)| Medium | Array, Sorting, Greedy, Two_Pointers | 4 | 32.05
29152915
| 0947 |[Most Stones Removed with Same Row or Column](src.save/main/java/g0901_1000/s0947_most_stones_removed_with_same_row_or_column/Solution.java)| Medium | Depth_First_Search, Graph, Union_Find, Level_2_Day_19_Union_Find | 5 | 98.95
2916-
| 0946 |[Validate Stack Sequences](src.save/main/java/g0901_1000/s0946_validate_stack_sequences/Solution.java)| Medium | Array, Stack, Simulation | 6 | 20.54
2916+
| 0946 |[Validate Stack Sequences](src.save/main/java/g0901_1000/s0946_validate_stack_sequences/Solution.java)| Medium | Array, Stack, Simulation | 1 | 99.26
29172917
| 0945 |[Minimum Increment to Make Array Unique](src.save/main/java/g0901_1000/s0945_minimum_increment_to_make_array_unique/Solution.java)| Medium | Array, Sorting, Greedy, Counting | 9 | 95.25
29182918
| 0944 |[Delete Columns to Make Sorted](src.save/main/java/g0901_1000/s0944_delete_columns_to_make_sorted/Solution.java)| Easy | Array, String | 11 | 59.39
29192919
| 0943 |[Find the Shortest Superstring](src.save/main/java/g0901_1000/s0943_find_the_shortest_superstring/Solution.java)| Hard | Array, String, Dynamic_Programming, Bit_Manipulation, Bitmask | 16 | 100.00

src.save/main/java/g1801_1900/s1829_maximum_xor_for_each_query/Solution.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
package g1801_1900.s1829_maximum_xor_for_each_query;
22

33
// #Medium #Array #Bit_Manipulation #Prefix_Sum
4-
// #2022_05_07_Time_7_ms_(20.94%)_Space_152.5_MB_(6.86%)
4+
// #2022_07_14_Time_5_ms_(61.24%)_Space_149.5_MB_(14.34%)
55

66
public class Solution {
77
public int[] getMaximumXor(int[] nums, int maximumBit) {
88
int[] result = new int[nums.length];
9-
long[] xOr = new long[nums.length];
10-
xOr[0] = nums[0];
9+
int val = nums[0];
10+
int target = (1 << maximumBit) - 1;
1111
for (int i = 1; i < nums.length; i++) {
12-
xOr[i] ^= xOr[i - 1] ^ nums[i];
12+
val ^= nums[i];
1313
}
14-
long maxNum = (long) Math.pow(2, maximumBit) - 1;
15-
for (int i = 0; i < nums.length; i++) {
16-
result[nums.length - i - 1] = (int) (maxNum ^ xOr[i]);
14+
for (int i = 0; i < result.length; i++) {
15+
result[i] = target ^ val;
16+
val ^= nums[nums.length - i - 1];
1717
}
1818
return result;
1919
}

0 commit comments

Comments
 (0)