【LeetCode笔记】69. x 的平方根(Java、二分)

文章目录

  • 题目描述
  • 思路 & 代码
      • 更新版

题目描述

  • 本质:找满足 k * k <= x 的最大 k
    在这里插入图片描述

思路 & 代码

  • 二分,对满足 k * k <= x 的最大 k进行查找。
  • 注意极端数据,用 long
  • 暴力法先来一个
class Solution {public int mySqrt(int x) {int ans = -1;for(int i = 0; i <= x; i++){if((long)i * i <= x){ans = i;}else{break;}}return ans;}
}
  • 二分
class Solution {public int mySqrt(int x) {int ans = -1;int left = 0, right = x;// 二分法:查找最大的,满足 mid * mid <= x 的值为answhile(left <= right){int mid = (left + right) / 2;// long:极端数据if((long)mid * mid <= x){ans = mid;left = mid + 1;}else{right = mid - 1;}}return ans;}
}

更新版

  • 只能说这道题真的挺恶心的…本质还是二分,小心边界
class Solution {public int mySqrt(int x) {if(x == 1) {return 1;}int left = 0, right = x;while(left + 1 < right) {int mid = (left + right) / 2;if(x / mid < mid) {right = mid;}else {left = mid;}}return left;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv 模板匹配_详细剖析模板匹配

点击上方“新机器视觉”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达模板匹配介绍我们需要2幅图像&#xff1a;原图像 (I): 在这幅图像里,我们希望找到一块和模板匹配的区域模板 (T): 将和原图像比照的图像块模板匹配就是在整个图像区域发现…

【LeetCode笔记】143. 重排链表(Java、链表、栈、快慢指针)

文章目录题目描述思路 & 代码更新版&#xff1a;快慢指针 翻转链表题目描述 一看题目反序&#xff1a;用栈更新&#xff1a;O(1) 空间复杂度 思路 & 代码 先快慢指针&#xff0c;找到需要入栈的起点&#xff0c;然后逐个入栈然后逐个出栈&#xff0c;进行重排即可…

hdfs中与file数组类似的数组_如何在 JavaScript 中克隆数组

作者&#xff1a;Yazeed Bzadough译者&#xff1a;allenJavaScript 有很多方法可以做任何事情&#xff0c;现在我们研究数组。1.扩展运算符(浅拷贝)自从 ES6 发布以来&#xff0c;这一直是最受欢迎的方法。这是一个简短的语法&#xff0c;你会发现它在使用像 React 和 Redux 这…

【LeetCode笔记】54. 螺旋矩阵(Java、迭代、递归)

文章目录题目描述思路 & 代码递归迭代更新版 - 递归题目描述 递归和迭代都实现了&#xff0c;递归相对比较好理解&#xff0c;也比较好实现 思路 & 代码 递归 每次都把最外圈的元素跑完一行 or 一列的时候&#xff0c;跑一次结束边界&#xff1a;left > right …

ubuntu boot空间不足_安装 Ubuntu 双系统

在很久以前就想试一试Linux了&#xff0c;一直没有实践。一是觉得太麻烦&#xff0c;二是怕把电脑弄坏。后来实践了一次后发现&#xff0c;其实并没有想象中那么难&#xff0c;这是一个完全独立的系统&#xff0c;与隔壁的Windows半毛钱关系都没有。把引导搞定就不怕了。另外&a…

【LeetCode笔记】112 113. 路径总和 I II(Java、递归、DFS)

文章目录路径总和 I路径总和 II比较简单&#xff0c;就连着一起写了 路径总和 I 注意&#xff1a;一定得走到叶子才算 直接看代码吧&#xff0c;注释也就几行。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* T…

安装python环境与运行_linux下怎么安装python的运行环境

展开全部 1、2113linux下安装python3 a、 准备编译环境(环境如果不对的5261话&#xff0c;可能遇到各种问题&#xff0c;比如wget无法下4102载1653https链接的文件)1 2 yum groupinstall Development Tools yum install zlib-devel bzip2-devel openssl-devel ncurses-devel2 下…

【LeetCode笔记】437. 路径总和III(Java、双重递归、二叉树)

文章目录题目描述思路 & 代码题目描述 说实话确实比I & II要恶心一点这里直接用双递归秒了&#xff08;今天才发现我是之前先写的III&#xff0c;再写的I & II&#xff09;有前缀和的写法&#xff0c;但是懒得整了 思路 & 代码 和之前不同&#xff0c;这里…

python中break和continue的区别_python中break和continue的区别

原博文 2017-08-01 09:56 − break和continue 1.break 意思为结束循环 例&#xff1a; i 0 while i<10: i1 if i5: #当i5时&#xff0c;结束整个循环 ...030778 相关推荐 2019-12-20 11:37 − 1、break break的使用场景&#xff1a;循环语句和switch-case分支语句。 它的作…

【LeetCode笔记】128. 最长连续序列(Java、哈希表、动态规划)

文章目录题目描述思路 & 代码变式题&#xff1a;返回答案数组更新可恶。。居然碰到了周一面试没撕出最优复杂度的题 题目描述 难点在于时间复杂度O(n)&#xff0c;否则来个sort()还是很轻松的 思路 & 代码 一般来说&#xff0c;时间复杂度可以用空间复杂度来弥补&a…

【LeetCode笔记】148. 排序链表(Java、归并排序、快慢指针、双重递归)

文章目录题目描述思路 & 代码二刷题目描述 难点在于时空复杂度的要求 思路 & 代码 转化成&#xff1a;归并排序 合并两个有序链表 即可利用快慢指针来拆分成两条链表注意&#xff1a;链表的拆分 & 连接时间复杂度O(n * logn)&#xff0c;空间复杂度 O(1) /**…

java substring截取字符串_lt;12gt;深入了解字符串

深入了解字符串完整视频教程&#xff1a;Java轻松入门经典教程[柠檬学院]-学习视频教程-培训课程-腾讯课堂​ke.qq.com字符串主要用于编程&#xff0c;用于概念说明、函数解释、用法详述等&#xff0c;字符串在存储上类似于字符数组&#xff0c;所以它的每一个单元都是可以提取…

【LeetCode笔记】88. 合并两个有序数组(Java、双指针)

文章目录题目描述思路 & 代码更新题目描述 比较简单&#xff0c;直接看思路吧&#xff01; 思路 & 代码 从后往前进行填数即可&#xff08;正确性可以保证&#xff09;时间复杂度 O(n) class Solution {public void merge(int[] nums1, int m, int[] nums2, int n…

thymealf如何实现传单个变量给html_梦回2013,看尤大vue的第一行代码,如何用30行代码实现vue(超简洁,适合初学者)...

非非非标题党&#xff0c;干货预警&#xff01;&#xff01;&#xff01;介绍大家好&#xff0c;我是清池交友 app 开发日记&#xff0c;记录清池交友 app 开发中学习过程和踩坑日记&#xff0c;伪全栈[1]技术栈&#xff1a;前端 js&#xff0c;vue&#xff0c;uniapp&#xff…

【LeetCode笔记】142. 环形链表 II(Java、快慢指针)

文章目录题目描述思路 & 代码更新版三刷 - 再更新题目描述 相对于环形链表&#xff0c;这里要求找到环的起点难点在于 O(1)&#xff0c;否则可以直接哈希表冲 思路 & 代码 找出快慢指针的路程关系&#xff0c;得出结论&#xff08;详见代码注释&#xff09; /*** …

python找出在原图中的位置_Python 通过截图匹配原图中的位置(opencv)实例

安装依赖 1&#xff09;下载安装opencv-2.4.9&#xff0c;并将cv2.pyd拷贝到python安装目录的site-package下 2&#xff09;pip install numpy 3&#xff09;pip install aircv 准备一张原图和截图 原图截图代码 import cv2 import aircv as ac # print circle_center_pos def …

【LeetCode笔记】287. 寻找重复数(Java、快慢指针、原地、链表)

文章目录题目描述思路 & 代码更新题目描述 可以理解成数组版本的 环形链表 II更多详细思路可见以上超链接。 思路 & 代码 如何转化成逻辑上的链表&#xff1f;nums[i] 是 第 i 个结点的 next 指针构造成一个有 nums.length - 重复次数 个结点的链表如此&#xff0…

【LeetCode笔记】338. 比特位计数(Java、位运算、动态规划)

文章目录题目描述思路 & 代码无注释二刷题目描述 难点在于 O(n) 思路 & 代码 理解题意&#xff0c;分析出 O(n) 复杂度应该是要用到之前的值来得到当前值——动态规划核心结论&#xff1a;奇数比前一个数多一个1&#xff0c;偶数和偶数除二后的数的1数量一样边界 &…

【LeetCode笔记】560. 和为K的子数组(Java、前缀和、哈希表)

文章目录题目描述思路 & 代码暴力法 O(n2n^2n2)前缀和 哈希表 O(n)二刷题目描述 第一道前缀和题目&#xff5e; 思路 & 代码 暴力法 O(n2n^2n2) 固定一个值&#xff0c;从后往前找满足的条件即可 class Solution {public int subarraySum(int[] nums, int k) {i…

caffe不支持relu6_国产AI框架再进化!百度Paddle Lite发布:率先支持华为NPU在线编译,全新架构更多硬件支持...

乾明 边策 发自 凹非寺 量子位 报道 | 公众号 QbitAI国产AI框架飞桨刚刚带来新进化&#xff1a;Paddle Lite正式发布&#xff01;高扩展、高性能、轻量化&#xff0c;还是首个支持华为NPU在线编译的深度学习端侧推理框架&#xff0c;剑指加大力度攻占移动端侧场景。而且大环境如…