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、二分思想是比较常见的解题思路,这个简单题目可以了解到二分思想的作用

相关推荐
boonya5 分钟前
Kafka核心原理与常见面试问题解析
分布式·面试·kafka
Java中文社群10 分钟前
面试官:如何实现动态线程池的任务编排?
java·后端·面试
脚踏实地的大梦想家10 分钟前
【Go】P2 Golang 常量与变量
开发语言·后端·golang
.鱼子酱10 分钟前
机器学习 - 使用 ID3 算法从原理到实际举例理解决策树
算法·决策树·机器学习
lozhyf20 分钟前
能发弹幕的简单视频网站
java·spring boot·后端
SamDeepThinking21 分钟前
Cursor集成MCP MySQL服务器完整配置指南
后端·ai编程·cursor
小爱同学_32 分钟前
从前端模块化历史到大厂面试题
前端·javascript·面试
AAA修煤气灶刘哥39 分钟前
ES 地理查询玩明白,产品要的 “附近的店” 再也难不倒我!(附 DSL+Java 实战)
java·后端·elasticsearch
shark_chili1 小时前
深入理解CPU缓存:编写高性能Java代码的终极指南
后端
Q741_1471 小时前
C++ 前缀和 高频笔试考点 实用技巧 牛客 DP34 [模板] 前缀和 题解 每日一题
开发语言·c++·算法·前缀和·牛客网