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

LeetCode 69.x的平方

LeetCode 69.x的平方

题目描述

思路:

二分查找。从1到x进行二分查找,每次判断mid的平方是否<=x,
如果是,则更新ans=mid,并缩小区间;
如果不是,则缩小区间;
最后则找到最接近的ans,使得ans的平方<=x且ans+1的平方>x,即ans为x的算术平方根
注意:x数据范围为int型的取值范围,则计算平方的时候需要注意可能会溢出

代码:

#include<stdio.h>
#include<vector>
#include<string.h>
#include<algorithm>
using namespace std;class Solution
{
public:int mySqrt(int x){int left=1;int right=x;int ans=0;while(left<=right){long long mid=left+((right-left)>>1);long long square=mid*mid;if(square<=x){left=mid+1;ans=mid;}elseright=mid-1;}return ans;}
};int main()
{int target=9;Solution *solution=new Solution();printf("%d\n",solution->mySqrt(target));delete(solution);return 0;
}

总结: 做这道题的时候,没有想明白二分能找到最接近的值,脑子可能当时宕机了,,,归根结底还是对二分的理解不透彻。 还有要注意,运算符+(-)的优先级要高于运算符>>(<<),注意要加括号(在此记录)
http://www.lryc.cn/news/189369.html

相关文章:

  • 【小白入门】ASP.NET Core 创建 Web API
  • 如何使用摩尔信使MThings连接网络设备
  • 2023自动驾驶 车道线检测数据集
  • 排序算法-冒泡排序法(BubbleSort)
  • 3d tiles规范boundingVolume属性学习
  • 【开题报告】如何借助chatgpt完成毕业论文开题报告
  • 微信小程序通过 movable-area 做一个与vuedraggable相似的上下拖动排序控件
  • Ceph入门到精通-Nginx超时参数分析设置
  • TCP/IP(十)TCP的连接管理(七)CLOSE_WAIT和TCP保活机制
  • LeetCode 面试题 08.10. 颜色填充
  • 内排序算法
  • options.html 页面设计成聊天框,左侧是功能列表,右侧是根据左侧的功能切换成不同的内容。--chatGpt
  • 排序算法-选择排序法(SelectionSort)
  • Java-集合框架
  • 联想携中国移动打造车路协同方案 助力重庆实现32类车联网场景
  • Rust入门基础
  • 民族民俗景区3d智慧旅游系统提升游客旅游体验和质量
  • Webpack 解决:Error: error:0308010C:digital envelope routines::unsupported 的问题
  • JAVA操作Json的ObjectMapper类
  • Docker--harbor
  • Flink中的时间和窗口
  • Ultra-Fast-Lane-Detection 车道线学习资料整理
  • 【Ubuntu】Ubuntu18.04终端卡顿问题
  • k8s强制删除pod、svc、namespace(Terminating)
  • froeach迭代删除和List迭代删除问题
  • chromedriver下载地址
  • 2ED2410-EM:12v / 24v智能模拟高侧MOSFET栅极驱动器
  • 什么是Fetch API?与传统的AJAX相比,有什么优势?
  • 43.241.18.123哪些问题会导致服务器里面时间错误
  • 【ElasticSearch】更新es索引生命周期策略,策略何时对索引生效