Skip to content

Commit 45d35a2

Browse files
committed
feat: add the solution of Plus One(066) with kotlin.
1 parent 5535446 commit 45d35a2

File tree

3 files changed

+70
-1
lines changed

3 files changed

+70
-1
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
| [038][038-question] | [Count and Say][038-tips] | [][038-java] | | [][038-kotlin] |
4242
| [053][053-question] | [Maximum Subarray][053-tips] | [][053-java] | | [][053-kotlin] |
4343
| [058][058-question] | [Length of Last Word][058-tips] | [][058-java] | | [][058-kotlin] |
44-
| [066][066-question] | [Plus One][066-tips] | [][066-java] | | |
44+
| [066][066-question] | [Plus One][066-tips] | [][066-java] | | [][066-kotlin] |
4545
| [067][067-question] | [Add Binary][067-tips] | [][067-java] | | |
4646
| [069][069-question] | [Sqrt(x)][069-tips] | [][069-java] | | |
4747
| [070][070-question] | [Climbing Stairs][070-tips] | [][070-java] | | |
@@ -481,4 +481,5 @@
481481
[038-kotlin]: ./src/_038/kotlin/Solution.kt
482482
[053-kotlin]: ./src/_053/kotlin/Solution.kt
483483
[058-kotlin]: ./src/_058/kotlin/Solution.kt
484+
[066-kotlin]: ./src/_066/kotlin/Solution.kt
484485
[771-kotlin]: ./src/_771/kotlin/Solution.kt

src/_066/kotlin/Solution.kt

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package _066.kotlin
2+
3+
import java.util.*
4+
5+
/**
6+
* @author relish
7+
* @since 2018/04/19
8+
*/
9+
class Solution {
10+
fun plusOne(digits: IntArray): IntArray {
11+
var flag = 1
12+
val len = digits.size
13+
for (i in len - 1 downTo 0) {
14+
digits[i] += flag
15+
if (digits[i] >= 10) {
16+
digits[i] %= 10
17+
flag = 1
18+
continue
19+
}
20+
flag = 0
21+
break
22+
}
23+
if (flag == 1) {
24+
return IntArray(len+1,fun(index: Int):Int{
25+
if(index==0)return 1
26+
return digits[index-1]
27+
})
28+
}
29+
return digits
30+
}
31+
}
32+
33+
fun main(args: Array<String>) {
34+
println(Arrays.toString(Solution().plusOne(intArrayOf(9, 9, 9, 9))))
35+
}
36+
//val ret = IntArray(len + 1)
37+
//ret[0] = 1
38+
//for (i in digits.indices) {
39+
// ret[i + 1] = digits[i]
40+
//}
41+
//return ret

tips/066/README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ The digits are stored such that the most significant digit is at the head of the
1515

1616
题意是给你一个数字数组,高位在前,并且首位不为 0 除非这个数组就是 `[0]`,让你给该数组低位加一求其结果,那么我们就模拟小学数学那样进位去算即可,如果一直进位到首位,这种情况也就是都是由 9 组成的数组,此时我们只要 new 出一个多一个长度的数组即可,并把第 0 个元素赋 1 即可。
1717

18+
Java:
1819
```java
1920
class Solution {
2021
public int[] plusOne(int[] digits) {
@@ -37,6 +38,32 @@ class Solution {
3738
}
3839
```
3940

41+
kotlin(208ms/100.00%)
42+
```kotlin
43+
class Solution {
44+
fun plusOne(digits: IntArray): IntArray {
45+
var flag = 1
46+
val len = digits.size
47+
for (i in len - 1 downTo 0) {
48+
digits[i] += flag
49+
if (digits[i] >= 10) {
50+
digits[i] %= 10
51+
flag = 1
52+
continue
53+
}
54+
flag = 0
55+
break
56+
}
57+
if (flag == 1) {
58+
return IntArray(len+1,fun(index: Int):Int{
59+
if(index==0)return 1
60+
return digits[index-1]
61+
})
62+
}
63+
return digits
64+
}
65+
}
66+
```
4067

4168
## 结语
4269

0 commit comments

Comments
 (0)