LeetCode第69题x 的平方根

继续打卡算法题,今天学习的是LeetCode第69题x的平方根 ,这道题目是道简单题。算法题的一些解题思路和技巧真的非常巧妙,每天看一看算法题和解题思路,我相信对我们的编码思维和编码能力有一些提升。

分析一波题目

本题要求算术平方根,如果我们使用暴力办法,可以从1到2/x,不断的求平方根,这样时间复杂度是2/x。

我们可以使用二分的思想,不断的找一个这样的数,满足k^2≤x, 并且k取最大值。这样都不需要查找x/2次了,时间复杂度降低为O(logx)

本题解题思路

1、二分思想,降低解题时间复杂度

编码解决

java 复制代码
class Solution {
    public int mySqrt(int x) {
        int l = 0, r = x, ans = -1;
        while (l <= r) {
            int mid = l + (r - l) / 2;
            if ((long) mid * mid <= x) {
                ans = mid;
                l = mid + 1;
            } else {
                r = mid - 1;
            }
        }
        return ans;
    }
}

总结

1、二分思想是比较常见的解题思路,这个简单题目可以了解到二分思想的作用

相关推荐
凌波粒2 分钟前
Springboot基础教程(3)--自动装配原理/静态资源处理/欢迎页
java·spring boot·后端
凌波粒3 分钟前
SpringBoot基础教程(2)--yaml/配置文件注入/数据校验/多环境配置
java·spring boot·后端·spring
S***26755 分钟前
Spring Boot环境配置
java·spring boot·后端
6***83056 分钟前
什么是Spring Boot 应用开发?
java·spring boot·后端
Mz122111 分钟前
day05 移动零、盛水最多的容器、三数之和
数据结构·算法·leetcode
SoleMotive.14 分钟前
如果用户反映页面跳转得非常慢,该如何排查
jvm·数据库·redis·算法·缓存
n***786815 分钟前
SpringBoot详解
java·spring boot·后端
念越21 分钟前
判断两棵二叉树是否相同(力扣)
算法·leetcode·入门
星释22 分钟前
Rust 练习册 96:Rectangles与几何计算
开发语言·后端·rust
切糕师学AI26 分钟前
Spring 是什么?
java·后端·spring