Skip to content

Commit f2ce214

Browse files
committed
solve leetcode |1929|[Concatenation of Array]
1 parent bb821e9 commit f2ce214

File tree

4 files changed

+46
-2
lines changed

4 files changed

+46
-2
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ leetcode_solutions
6363
|50|[Pow(x, n)](https://leetcode.com/problems/powx-n/)|[Rust](src/math/pow.rs)|
6464
|51|[N Queens](https://leetcode.com/problems/n-queens)|[Python](https://github.com/pymongo/python_leetcode/blob/master/dfs_perm_comb/n_queens.py), [Rust](src/bfs_dfs_backtracking/n_queens.rs)||
6565
|52|[N Queens II](https://leetcode.com/problems/n-queens-ii)|[Python](https://github.com/pymongo/python_leetcode/blob/master/dfs_perm_comb/n_queens.py), [Rust](src/bfs_dfs_backtracking/n_queens.rs)|
66-
|53|[Maximum Subarray](https://leetcode.com/problems/maximum-subarray/)|[Python](https://github.com/pymongo/python_leetcode/blob/master/greedy/maximum_subarray.py)|greedy, dp|
66+
|53|[Maximum Subarray](https://leetcode.com/problems/maximum-subarray/)|[Rust](src/greedy/maximum_subarray.rs)|
6767
|54|[Spiral Matrix](https://leetcode.com/problems/spiral-matrix/)|[Rust](src/easy/grid_or_matrix/spiral_matrix.rs)|
6868
|55|[Jump Game](https://leetcode.com/problems/jump-game/)|[Python](https://github.com/pymongo/python_leetcode/blob/master/dp/jump_game.py)|greedy, dp|
6969
|58|[Length of Last Word](https://leetcode.com/problems/length-of-last-word/)|[Rust](src/easy/leetcode_very_easy)|
@@ -485,6 +485,8 @@ leetcode_solutions
485485
|1880|[Check if Word Equals...](https://leetcode.com/problems/check-if-word-equals-summation-of-two-words/)|[Rust](src/easy/leetcode_very_easy.rs)|
486486
|1913|[Maximum Product Diff...](https://leetcode.com/problems/maximum-product-difference-between-two-pairs/)|[Rust](src/easy/leetcode_very_easy.rs)|
487487
|1920|[Build Array from Permutation](https://leetcode.com/problems/build-array-from-permutation)|[Rust](src/easy/leetcode_very_easy.rs)|
488+
|1925|[Count Square Sum Triples](https://leetcode.com/problems/count-square-sum-triples/)|[Rust](src/easy/leetcode_very_easy.rs)|
489+
|1929|[Concatenation of Array](https://leetcode.com/problems/concatenation-of-array/)|[Rust](src/easy/leetcode_very_easy.rs)|
488490

489491
---
490492

@@ -522,7 +524,6 @@ lintcode_problems
522524
|31|[Partition Array](https://lintcode.com/problem/partition-array/)|[Python](https://github.com/pymongo/python_leetcode/blob/master/partition_array/partition_array.py)|two_pointers|
523525
|38|[Search a 2D Matrix II](https://lintcode.com/problem/search-a-2d-matrix-ii/)|leetcode_240|
524526
|40|[Implement Queue by Two Stacks](https://lintcode.com/problem/implement-queue-by-two-stacks/)|[Python](https://github.com/pymongo/python_leetcode/blob/master/collections/impl_queue_by_stack.py)||
525-
|41|[Maximum Subarray](https://lintcode.com/problem/maximum-subarray/)|[Python](https://github.com/pymongo/python_leetcode/blob/master/greedy/maximum_subarray.py)|greedy, dp|
526527
|49|[Sort Letters by Case](https://lintcode.com/problem/sort-letters-by-case/)|[Python](https://github.com/pymongo/python_leetcode/blob/master/partition_array/sort_colors.py)|
527528
|50|[Product of Array Exclude Itself](https://lintcode.com/problem/product-of-array-exclude-itself/)|leetcode_lcof_66|
528529
|52|[Next Permutation](https://lintcode.com/problem/next-permutation/)|[Python](https://github.com/pymongo/python_leetcode/blob/master/dfs_perm_comb/next_permutation.py)||

src/easy/leetcode_very_easy.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2683,3 +2683,25 @@ fn display_table(orders: Vec<Vec<String>>) -> Vec<Vec<String>> {
26832683
}
26842684
ret
26852685
}
2686+
2687+
/// https://leetcode.com/problems/count-square-sum-triples/
2688+
fn count_triples(n: i32) -> i32 {
2689+
let n = f64::from(n * n).sqrt() as i32;
2690+
let mut ret = 0;
2691+
for a in 1..=n {
2692+
for b in a..=n {
2693+
for c in b..=n {
2694+
if a * a + b * b == c * c {
2695+
ret += 2;
2696+
}
2697+
}
2698+
}
2699+
}
2700+
ret
2701+
}
2702+
2703+
/// https://leetcode.com/problems/concatenation-of-array/
2704+
fn get_concatenation(mut nums: Vec<i32>) -> Vec<i32> {
2705+
nums.extend(nums.clone());
2706+
nums
2707+
}

src/greedy/maximum_subarray.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*! https://leetcode.com/problems/maximum-subarray/
2+
53. 最大子序和
3+
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和
4+
O(n)的算法:贪心: if cur_sum+nums[i] < nums[i],则以舍弃前面的元素,从i开始从新算最大长度
5+
O(n)的算法:动态规划(「滚动数组」): 如果当前元素的前一个元素大于0,则当前元素的值 += 前一个元素的值
6+
O(logn)的算法?分治?: 求区间内最值用「线段树」,但是加上预处理之后,就跟贪心一样是O(n),本题没有logn的解法
7+
这个分治方法类似于「线段树求解 LCIS 问题」的 pushUp 操作
8+
*/
9+
10+
fn maximum_subarray_dp(mut nums: Vec<i32>) -> i32 {
11+
let size = nums.len();
12+
let mut max_sum = nums[0];
13+
for i in 1..size {
14+
if nums[i - 1] > 0 {
15+
nums[i] += nums[i - 1];
16+
}
17+
max_sum = max_sum.max(nums[i]);
18+
}
19+
max_sum
20+
}

src/greedy/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ mod factorial_trailing_zeroes;
1717
mod gas_station;
1818
mod int_to_roman;
1919
mod majority_element;
20+
mod maximum_subarray;
2021
mod partition_labels;
2122
mod prefix_sum_subarray;
2223
mod product_of_array_except_self;

0 commit comments

Comments
 (0)