Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b949258

Browse files
committed
feat: add solutions to lc problems: No.0202,0350
- No.0202.Happy Number - No.0350.Intersection of Two Arrays II
1 parent cfdc03d commit b949258

File tree

9 files changed

+286
-36
lines changed

9 files changed

+286
-36
lines changed

‎solution/0200-0299/0202.Happy Number/README.md‎

Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -107,25 +107,72 @@ class Solution {
107107
}
108108
```
109109

110-
### **Rust**
110+
### **C++**
111111

112-
```rust
113-
impl Solution {
114-
fn get_next(mut n: i32) -> i32 {
115-
let mut res = 0;
116-
while n != 0 {
117-
res += (n % 10).pow(2);
118-
n /= 10;
112+
```cpp
113+
class Solution {
114+
public:
115+
bool isHappy(int n) {
116+
auto getNext = [](int n) {
117+
int res = 0;
118+
while (n) {
119+
res += pow(n % 10, 2);
120+
n /= 10;
121+
}
122+
return res;
123+
};
124+
int slow = n;
125+
int fast = getNext(n);
126+
while (slow != fast) {
127+
slow = getNext(slow);
128+
fast = getNext(getNext(fast));
129+
}
130+
return slow == 1;
131+
}
132+
};
133+
```
134+
135+
### **TypeScript**
136+
137+
```ts
138+
function isHappy(n: number): boolean {
139+
const getNext = (n: number) => {
140+
let res = 0;
141+
while (n !== 0) {
142+
res += (n % 10) ** 2;
143+
n = Math.floor(n / 10);
119144
}
120-
res
145+
return res;
146+
};
147+
148+
let slow = n;
149+
let fast = getNext(n);
150+
while (slow !== fast) {
151+
slow = getNext(slow);
152+
fast = getNext(getNext(fast));
121153
}
154+
return fast === 1;
155+
}
156+
```
122157

158+
### **Rust**
159+
160+
```rust
161+
impl Solution {
123162
pub fn is_happy(n: i32) -> bool {
163+
let get_next = |mut n: i32| {
164+
let mut res = 0;
165+
while n != 0 {
166+
res += (n % 10).pow(2);
167+
n /= 10;
168+
}
169+
res
170+
};
124171
let mut slow = n;
125-
let mut fast = Self::get_next(n);
172+
let mut fast = get_next(n);
126173
while slow != fast {
127-
slow = Self::get_next(slow);
128-
fast = Self::get_next(Self::get_next(fast));
174+
slow = get_next(slow);
175+
fast = get_next(get_next(fast));
129176
}
130177
slow == 1
131178
}

‎solution/0200-0299/0202.Happy Number/README_EN.md‎

Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -91,25 +91,72 @@ class Solution {
9191
}
9292
```
9393

94-
### **Rust**
94+
### **C++**
9595

96-
```rust
97-
impl Solution {
98-
fn get_next(mut n: i32) -> i32 {
99-
let mut res = 0;
100-
while n != 0 {
101-
res += (n % 10).pow(2);
102-
n /= 10;
96+
```cpp
97+
class Solution {
98+
public:
99+
bool isHappy(int n) {
100+
auto getNext = [](int n) {
101+
int res = 0;
102+
while (n) {
103+
res += pow(n % 10, 2);
104+
n /= 10;
105+
}
106+
return res;
107+
};
108+
int slow = n;
109+
int fast = getNext(n);
110+
while (slow != fast) {
111+
slow = getNext(slow);
112+
fast = getNext(getNext(fast));
113+
}
114+
return slow == 1;
115+
}
116+
};
117+
```
118+
119+
### **TypeScript**
120+
121+
```ts
122+
function isHappy(n: number): boolean {
123+
const getNext = (n: number) => {
124+
let res = 0;
125+
while (n !== 0) {
126+
res += (n % 10) ** 2;
127+
n = Math.floor(n / 10);
103128
}
104-
res
129+
return res;
130+
};
131+
132+
let slow = n;
133+
let fast = getNext(n);
134+
while (slow !== fast) {
135+
slow = getNext(slow);
136+
fast = getNext(getNext(fast));
105137
}
138+
return fast === 1;
139+
}
140+
```
106141

142+
### **Rust**
143+
144+
```rust
145+
impl Solution {
107146
pub fn is_happy(n: i32) -> bool {
147+
let get_next = |mut n: i32| {
148+
let mut res = 0;
149+
while n != 0 {
150+
res += (n % 10).pow(2);
151+
n /= 10;
152+
}
153+
res
154+
};
108155
let mut slow = n;
109-
let mut fast = Self::get_next(n);
156+
let mut fast = get_next(n);
110157
while slow != fast {
111-
slow = Self::get_next(slow);
112-
fast = Self::get_next(Self::get_next(fast));
158+
slow = get_next(slow);
159+
fast = get_next(get_next(fast));
113160
}
114161
slow == 1
115162
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution {
2+
public:
3+
bool isHappy(int n) {
4+
auto getNext = [](int n) {
5+
int res = 0;
6+
while (n) {
7+
res += pow(n % 10, 2);
8+
n /= 10;
9+
}
10+
return res;
11+
};
12+
int slow = n;
13+
int fast = getNext(n);
14+
while (slow != fast) {
15+
slow = getNext(slow);
16+
fast = getNext(getNext(fast));
17+
}
18+
return slow == 1;
19+
}
20+
};

‎solution/0200-0299/0202.Happy Number/Solution.rs‎

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
impl Solution {
2-
fn get_next(mut n: i32) -> i32 {
3-
let mut res = 0;
4-
while n != 0 {
5-
res += (n % 10).pow(2);
6-
n /= 10;
7-
}
8-
res
9-
}
10-
112
pub fn is_happy(n: i32) -> bool {
3+
let get_next = |mut n: i32| {
4+
let mut res = 0;
5+
while n != 0 {
6+
res += (n % 10).pow(2);
7+
n /= 10;
8+
}
9+
res
10+
};
1211
let mut slow = n;
13-
let mut fast = Self::get_next(n);
12+
let mut fast = get_next(n);
1413
while slow != fast {
15-
slow = Self::get_next(slow);
16-
fast = Self::get_next(Self::get_next(fast));
14+
slow = get_next(slow);
15+
fast = get_next(get_next(fast));
1716
}
1817
slow == 1
1918
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
function isHappy(n: number): boolean {
2+
const getNext = (n: number) => {
3+
let res = 0;
4+
while (n !== 0) {
5+
res += (n % 10) ** 2;
6+
n = Math.floor(n / 10);
7+
}
8+
return res;
9+
};
10+
11+
let slow = n;
12+
let fast = getNext(n);
13+
while (slow !== fast) {
14+
slow = getNext(slow);
15+
fast = getNext(getNext(fast));
16+
}
17+
return fast === 1;
18+
}

‎solution/0300-0399/0350.Intersection of Two Arrays II/README.md‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,49 @@ func intersect(nums1 []int, nums2 []int) []int {
158158
}
159159
```
160160

161+
### **TypeScript**
162+
163+
```ts
164+
function intersect(nums1: number[], nums2: number[]): number[] {
165+
const map = new Map<number, number>();
166+
for (const num of nums1) {
167+
map.set(num, (map.get(num) ?? 0) + 1);
168+
}
169+
170+
const res = [];
171+
for (const num of nums2) {
172+
if (map.has(num) && map.get(num) !== 0) {
173+
res.push(num);
174+
map.set(num, map.get(num) - 1);
175+
}
176+
}
177+
return res;
178+
}
179+
```
180+
181+
### **Rust**
182+
183+
```rust
184+
use std::collections::HashMap;
185+
impl Solution {
186+
pub fn intersect(nums1: Vec<i32>, nums2: Vec<i32>) -> Vec<i32> {
187+
let mut map = HashMap::new();
188+
for num in nums1.iter() {
189+
*map.entry(num).or_insert(0) += 1;
190+
}
191+
192+
let mut res = vec![];
193+
for num in nums2.iter() {
194+
if map.contains_key(num) && map.get(num).unwrap() != &0 {
195+
map.insert(num, map.get(&num).unwrap() - 1);
196+
res.push(*num);
197+
}
198+
}
199+
res
200+
}
201+
}
202+
```
203+
161204
### **...**
162205

163206
```

‎solution/0300-0399/0350.Intersection of Two Arrays II/README_EN.md‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,49 @@ func intersect(nums1 []int, nums2 []int) []int {
147147
}
148148
```
149149

150+
### **TypeScript**
151+
152+
```ts
153+
function intersect(nums1: number[], nums2: number[]): number[] {
154+
const map = new Map<number, number>();
155+
for (const num of nums1) {
156+
map.set(num, (map.get(num) ?? 0) + 1);
157+
}
158+
159+
const res = [];
160+
for (const num of nums2) {
161+
if (map.has(num) && map.get(num) !== 0) {
162+
res.push(num);
163+
map.set(num, map.get(num) - 1);
164+
}
165+
}
166+
return res;
167+
}
168+
```
169+
170+
### **Rust**
171+
172+
```rust
173+
use std::collections::HashMap;
174+
impl Solution {
175+
pub fn intersect(nums1: Vec<i32>, nums2: Vec<i32>) -> Vec<i32> {
176+
let mut map = HashMap::new();
177+
for num in nums1.iter() {
178+
*map.entry(num).or_insert(0) += 1;
179+
}
180+
181+
let mut res = vec![];
182+
for num in nums2.iter() {
183+
if map.contains_key(num) && map.get(num).unwrap() != &0 {
184+
map.insert(num, map.get(&num).unwrap() - 1);
185+
res.push(*num);
186+
}
187+
}
188+
res
189+
}
190+
}
191+
```
192+
150193
### **...**
151194

152195
```
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
use std::collections::HashMap;
2+
impl Solution {
3+
pub fn intersect(nums1: Vec<i32>, nums2: Vec<i32>) -> Vec<i32> {
4+
let mut map = HashMap::new();
5+
for num in nums1.iter() {
6+
*map.entry(num).or_insert(0) += 1;
7+
}
8+
9+
let mut res = vec![];
10+
for num in nums2.iter() {
11+
if map.contains_key(num) && map.get(num).unwrap() != &0 {
12+
map.insert(num, map.get(&num).unwrap() - 1);
13+
res.push(*num);
14+
}
15+
}
16+
res
17+
}
18+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
function intersect(nums1: number[], nums2: number[]): number[] {
2+
const map = new Map<number, number>();
3+
for (const num of nums1) {
4+
map.set(num, (map.get(num) ?? 0) + 1);
5+
}
6+
7+
const res = [];
8+
for (const num of nums2) {
9+
if (map.has(num) && map.get(num) !== 0) {
10+
res.push(num);
11+
map.set(num, map.get(num) - 1);
12+
}
13+
}
14+
return res;
15+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /