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

相关推荐
hrrrrb4 小时前
【Spring Boot 快速入门】八、登录认证(一)基础登录与认证校验
spring boot·后端
王大锤·5 小时前
基于spring boot的个人博客系统
java·spring boot·后端
金智维科技官方5 小时前
常见的大模型分类
人工智能·算法·ai·语言模型·数据挖掘
bobz9655 小时前
QT designer 常用技巧
后端
yzzzzzzzzzzzzzzzzz5 小时前
leetcode热题——有效的括号
算法·
shi57835 小时前
C# 常用的线程同步方式
开发语言·后端·c#
没逻辑6 小时前
抗量子密码技术(PQC)演变
后端·量子计算
崎岖Qiu6 小时前
leetcode1343:大小为K的子数组(定长滑动窗口)
java·算法·leetcode·力扣·滑动窗口
day>day>up6 小时前
django uwsgi启动报错failed to get the Python codec of the filesystem encoding
后端·python·django
Livingbody6 小时前
FastMCP In Action跑通第一个MCP之跟学python版
后端