8000 add · Mowmowj/leetcode@f5e2c4d · GitHub
[go: up one dir, main page]

Skip to content

Commit f5e2c4d

Browse files
committed
add
1 parent 559899e commit f5e2c4d

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed

problems/202. Happy Number/README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# 202. Happy Number
2+
3+
## #1 除于取余[AC]
4+
5+
### 算法
6+
7+
```java
8+
class Solution {
9+
public boolean isHappy(int n) {
10+
Set<Integer> set = new HashSet<>();
11+
int remain = 0, sum = 0;
12+
while(set.add(n)){
13+
sum = 0;
14+
while(n > 0){
15+
remain = n % 10;
16+
sum += remain*remain;
17+
n /= 10;
18+
}
19+
if(sum == 1)
20+
return true;
21+
else
22+
n = sum;
23+
}
24+
return false;
25+
}
26+
}
27+
```
28+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# 223. Rectangle Area
2+
3+
## #1 分类整合[AC]
4+
5+
### 思路
6+
7+
要求两个矩形在2D平面上的面积$S$,我们对$S$进行分解拆成,$S = S_{r_1} + S_{r_2} -S_{inter}$,其中$S_{r_1}$表示第一个矩形的面积;$S_{r_2}$表示第二个矩形的面积;$S_{inter}$表示两个矩形相交的面积。
8+
9+
### 算法
10+
11+
```java
12+
class Solution {
13+
public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
14+
long bl1 = Math.max(A, E);
15+
long bl2 = Math.max(B, F);
16+
long tr1 = Math.min(C, G);
17+
long tr2 = Math.min(D, H);
18+
long inter = Math.max(tr1 - bl1, 0) * Math.max(tr2 - bl2, 0);
19+
long rec1 = (C - A) * (D - B);
20+
long rec2 = (G - E) * (H - F);
21+
return (int)(rec1 + rec2 - inter);
22+
}
23+
}
24+
```
25+
26+
### 复杂度分析
27+
28+
- 时间复杂度:$O(1)$
29+
- 空间复杂度:$O(1)$
30+

0 commit comments

Comments
 (0)
0