Skip to content

Commit 0a8e3b8

Browse files
committed
feat: add the solution of Sqrt(x)(069) with kotlin.
1 parent 45d5cf7 commit 0a8e3b8

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
| [058][058-question] | [Length of Last Word][058-tips] | [][058-java] | | [][058-kotlin] |
4444
| [066][066-question] | [Plus One][066-tips] | [][066-java] | | [][066-kotlin] |
4545
| [067][067-question] | [Add Binary][067-tips] | [][067-java] | | [][067-kotlin] |
46-
| [069][069-question] | [Sqrt(x)][069-tips] | [][069-java] | | |
46+
| [069][069-question] | [Sqrt(x)][069-tips] | [][069-java] | | [][069-kotlin] |
4747
| [070][070-question] | [Climbing Stairs][070-tips] | [][070-java] | | |
4848
| [083][083-question] | [Remove Duplicates from Sorted List][083-tips] | [][083-java] | | |
4949
| [088][088-question] | [Merge Sorted Array][088-tips] | [][088-java] | | |
@@ -487,4 +487,5 @@
487487
[058-kotlin]: ./src/_058/kotlin/Solution.kt
488488
[066-kotlin]: ./src/_066/kotlin/Solution.kt
489489
[067-kotlin]: ./src/_067/kotlin/Solution.kt
490+
[069-kotlin]: ./src/_069/kotlin/Solution.kt
490491
[771-kotlin]: ./src/_771/kotlin/Solution.kt

src/_069/kotlin/Solution.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package _069.kotlin
2+
3+
/**
4+
* @author relish
5+
* @since 2018/04/21
6+
*/
7+
class Solution {
8+
fun mySqrt(x: Int): Int {
9+
var k = x.toLong()
10+
while (k * k > x)
11+
k = (k + x / k) / 2
12+
return k.toInt()
13+
}
14+
}
15+
16+
fun main(args: Array<String>) {
17+
println(Solution().mySqrt(2147395599))
18+
println(Solution().mySqrt(8))
19+
println(Solution().mySqrt(120))
20+
}

tips/069/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ Explanation: The square root of 8 is 2.82842..., and since we want to return an
3030

3131
题意是求平方根,参考 [牛顿迭代法求平方根](https://wenku.baidu.com/view/6b74c622bcd126fff7050bfe.html),然后再参考维基百科的 [Integer square root](https://en.wikipedia.org/wiki/Integer_square_root#Using_only_integer_division) 即可。
3232

33+
java:
3334
```java
3435
class Solution {
3536
public int mySqrt(int x) {
@@ -42,6 +43,18 @@ class Solution {
4243
}
4344
```
4445

46+
kotlin(192ms/78.57%):
47+
```kotlin
48+
class Solution {
49+
fun mySqrt(x: Int): Int {
50+
var k = x.toLong()
51+
while (k * k > x)
52+
k = (k + x / k) / 2
53+
return k.toInt()
54+
}
55+
}
56+
```
57+
4558

4659
## 结语
4760

0 commit comments

Comments
 (0)