当前位置: 首页 > news >正文

基础数学-求平方根(easy)

一、问题描述

二、实现思路

1.题目不能直接调用Math.sqrt(x)

2.这个题目可以使用二分法来缩小返回值范围

所以我们在left<right时

        使 mid = (left+right)/2+1

        当mid*mid>x时,说明right范围过大,right=right-1

        当mid*mid<x时,说明left范围太小,left=mid

当left>=right时跳出循环,返回left

三、代码实现

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param x int整型 * @return int整型*/public int sqrt (int x) {if(x==0||x==1){return x;}else{//在函数图像中可以看出:当x>4时,√x < x/2//由于以上性质,可以使用二分法去缩小返回值范围int res=1;int left=1;int right=x;while(left<right){int mid=(left+right)/2+1;int tmpsqrt=x/mid;if(mid>tmpsqrt){//等价于mid*mid>xright=mid-1;}else{left=mid;}}return left;}}
}

四、刷题链接

求平方根_牛客题霸_牛客网

http://www.lryc.cn/news/364335.html

相关文章:

  • c语言项目-贪吃蛇项目2-游戏的设计与分析
  • 力扣2831.找出最长等值子数组
  • 17K star,一款开源免费的手机电脑无缝同屏软件
  • 正则表达式二
  • 我的创作纪念日--我和CSDN一起走过的1825天
  • 递归书写树形图示例
  • 【python】IndexError: Replacement index 1 out of range for positional args tuple
  • Spring自带定时任务@Scheduled注解
  • 代码随想录算法训练营第二十九天|LeetCode491 非递减子序列、LeetCode46 全排列、LeetCode47 全排列Ⅱ
  • 初识C++ · 优先级队列
  • php反序列化入门
  • 嵌入式 Linux LED 驱动开发实验学习
  • C++:多态
  • Java事务入门:从基础概念到初步实践
  • 鸿蒙轻内核M核源码分析系列七 动态内存Dynamic Memory
  • 从头搭hadoop集群--分布式hadoop集群搭建
  • odoo10 权限控制用户只允许看到自己的字段
  • 图解Mysql索引原理
  • Arduino网页服务器:如何将Arduino开发板用作Web服务器
  • 大模型日报2024-06-05
  • LLM 大模型学习必知必会系列(二):提示词工程-Prompt Engineering 以及实战闯关
  • Spring系统学习 - Spring入门
  • Priority_queue
  • SpringMVC:获取请求数据
  • 深度学习 --- stanford cs231 编程作业(assignment1,Q2: SVM分类器)
  • 【scikit-learn010】sklearn算法模型清单实战及经验总结(已更新)
  • Rethinking overlooked aspects in vision-language models
  • 【漯河市人才交流中心_登录安全分析报告-Ajax泄漏滑动距离导致安全隐患】
  • C语言—字符函数和字符串函数
  • 爬山算法的详细介绍