File tree Expand file tree Collapse file tree 3 files changed +102
-0
lines changed
solution/0500-0599/0560.Subarray Sum Equals K Expand file tree Collapse file tree 3 files changed +102
-0
lines changed Original file line number Diff line number Diff line change @@ -128,6 +128,49 @@ func subarraySum(nums []int, k int) int {
128
128
}
129
129
```
130
130
131
+ ### ** Rust**
132
+
133
+ ``` rust
134
+ impl Solution {
135
+ pub fn subarray_sum (mut nums : Vec <i32 >, k : i32 ) -> i32 {
136
+ let n = nums . len ();
137
+ let mut count = 0 ;
138
+ for i in 0 .. n {
139
+ let num = nums [i ];
140
+ if num == k {
141
+ count += 1 ;
142
+ }
143
+ for j in 0 .. i {
144
+ nums [j ] += num ;
145
+ if nums [j ] == k {
146
+ count += 1 ;
147
+ }
148
+ }
149
+ }
150
+ count
151
+ }
152
+ }
153
+ ```
154
+
155
+ ``` rust
156
+ use std :: collections :: HashMap ;
157
+
158
+ impl Solution {
159
+ pub fn subarray_sum (nums : Vec <i32 >, k : i32 ) -> i32 {
160
+ let mut res = 0 ;
161
+ let mut sum = 0 ;
162
+ let mut map = HashMap :: new ();
163
+ map . insert (0 , 1 );
164
+ nums . iter (). for_each (| num | {
165
+ sum += num ;
166
+ res += map . get (& (sum - k )). unwrap_or (& 0 );
167
+ map . insert (sum , map . get (& sum ). unwrap_or (& 0 ) + 1 );
168
+ });
169
+ res
170
+ }
171
+ }
172
+ ```
173
+
131
174
### ** ...**
132
175
133
176
```
Original file line number Diff line number Diff line change @@ -111,6 +111,49 @@ func subarraySum(nums []int, k int) int {
111
111
}
112
112
```
113
113
114
+ ### ** Rust**
115
+
116
+ ``` rust
117
+ impl Solution {
118
+ pub fn subarray_sum (mut nums : Vec <i32 >, k : i32 ) -> i32 {
119
+ let n = nums . len ();
120
+ let mut count = 0 ;
121
+ for i in 0 .. n {
122
+ let num = nums [i ];
123
+ if num == k {
124
+ count += 1 ;
125
+ }
126
+ for j in 0 .. i {
127
+ nums [j ] += num ;
128
+ if nums [j ] == k {
129
+ count += 1 ;
130
+ }
131
+ }
132
+ }
133
+ count
134
+ }
135
+ }
136
+ ```
137
+
138
+ ``` rust
139
+ use std :: collections :: HashMap ;
140
+
141
+ impl Solution {
142
+ pub fn subarray_sum (nums : Vec <i32 >, k : i32 ) -> i32 {
143
+ let mut res = 0 ;
144
+ let mut sum = 0 ;
145
+ let mut map = HashMap :: new ();
146
+ map . insert (0 , 1 );
147
+ nums . iter (). for_each (| num | {
148
+ sum += num ;
149
+ res += map . get (& (sum - k )). unwrap_or (& 0 );
150
+ map . insert (sum , map . get (& sum ). unwrap_or (& 0 ) + 1 );
151
+ });
152
+ res
153
+ }
154
+ }
155
+ ```
156
+
114
157
### ** ...**
115
158
116
159
```
Original file line number Diff line number Diff line change
1
+ use std:: collections:: HashMap ;
2
+
3
+ impl Solution {
4
+ pub fn subarray_sum ( nums : Vec < i32 > , k : i32 ) -> i32 {
5
+ let mut res = 0 ;
6
+ let mut sum = 0 ;
7
+ let mut map = HashMap :: new ( ) ;
8
+ map. insert ( 0 , 1 ) ;
9
+ nums. iter ( ) . for_each ( |num| {
10
+ sum += num;
11
+ res += map. get ( & ( sum - k) ) . unwrap_or ( & 0 ) ;
12
+ map. insert ( sum, map. get ( & sum) . unwrap_or ( & 0 ) + 1 ) ;
13
+ } ) ;
14
+ res
15
+ }
16
+ }
You can’t perform that action at this time.
0 commit comments