首页 > 其他分享 >LeetCode 69[x的平方根]

LeetCode 69[x的平方根]

时间:2024-11-13 11:09:22浏览次数:1  
标签:平方 int 整型 69 平方根 LeetCode

题目

链接

LeetCode 69[x的平方根]

详情

实例

提示

题解

思路

由于所求的是整型且是正符号整型,可以采取循环遍历的方式来求取平方根

用 for 循环将 i 由 0 开始遍历,求平方值

当平方值小于指定值,此时循环继续

直到以下两种情况时退出循环:

  1. 当平方值为指定值时,返回 i 
  2. 当平方值大于指定值时,返回 i - 1

当 i 为有符号整型时,其遍历到 46341 时,平方值为 2147488281 ,但是力扣官方的 int 值的范围最大值为 2147483647,故其会溢出,所以 i 应该设置为 unsigned int 型

代码

class Solution {
public:
    int mySqrt(int x) {
        for (unsigned int i = 0;;i++)
        {
            if (x == i * i)
                return i;
            
            if (i * i > x)
                return i - 1;
        }
    }
};

标签:平方,int,整型,69,平方根,LeetCode
From: https://www.cnblogs.com/EricsT/p/18543510

相关文章

  • leetcode 59. 螺旋矩阵 II java解法
    以123456789为例n=奇数结果1                2                3      i8                9                47                6             ......
  • 代码随想录算法训练营第二十三天| leetcode39. 组合总和、leetcode40.组合总和II、lee
    1leetcode39.组合总和题目链接:39.组合总和-力扣(LeetCode)文章链接:代码随想录视频链接:带你学透回溯算法-组合总和(对应「leetcode」力扣题目:39.组合总和)|回溯法精讲!_哔哩哔哩_bilibili思路:跟之前差不多,就是将他的循环改一下,但是我发现有重复的数值了,不知道如何删除1.1自......
  • leetcode 50. Pow(x, n)
    50.Pow(x,n)要特别注意n的范围,如果n=-2^31,使用int是不可以直接n=-n;的 一、使用longclassSolution{public:doublemyPow(doublex,intn){if(x==0)return0;if(n==0)return1;if(n==1)returnx;......
  • Leetcode 148. 排序链表
    给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。经典的分治算法应用,通过归并进行排序,需要用到一个与原数组相同长度的数组归(分割)思想如上图所示,代码实现通过快慢指针来寻找链表的中点来分割指针varspilitList=function(head){if(head===......
  • LeetCode 836[矩形重叠]
    题目链接LeetCode836[矩形重叠]详情实例提示题解思路无重叠的四种情况:第二个矩形的右边边如果在第一个矩形的左边边的左边或重叠第二个矩形的左边边如果在第一个矩形的右边边的右边或重叠第二个矩形的上边边如果在第一个矩形的下边边的下边或重叠第二个矩形的下......
  • leetcode 29. 两数相除
    29.两数相除一、使用long类型classSolution{public:longdivide2(longdividend,longdivisor){if(dividend<0&&divisor<0)returndivide2(-dividend,-divisor);elseif(dividend<0&&divisor>0)return-div......
  • leetcode 4. 寻找两个正序数组的中位数 困难 未完全解决
    leetcode4.寻找两个正序数组的中位数一、使用额外空间,类似归并排序的做法classSolution{public:doublefindMedianSortedArrays(vector<int>&nums1,vector<int>&nums2){intm=nums1.size();intn=nums2.size();inttemp[(m+n)/2+1];//......
  • 代码随想录算法训练营第十一天|LeetCode150.逆波兰表达式求值、239.滑动窗口最大值、3
    前言打卡代码随想录算法训练营第49期第十一天 φ(゜▽゜*)♪首先十分推荐学算法的同学可以先了解一下代码随想录,可以在B站卡哥B站账号、代码随想录官方网站代码随想录了解,卡哥清晰易懂的算法教学让我直接果断关注,也十分有缘和第49期的训练营大家庭一起进步。今日题目在学......
  • 代码随想录算法训练营第三天(LeetCode203.移除链表元素;LeetCode707.设计链表;LeetCode20
    LeetCode203.移除链表元素题目链接:LeetCode203.移除链表元素题目链接思路这道题目主要考察的是移除一个链表当中的元素,我们可以先在给定的链表前面加一个虚拟头结点,这样我们对给定链表头结点的操作和给定链表其余结点的操作就会变得相同。代码classSolution{p......
  • 代码随想录算法训练营第四天(LeetCode24.两两交换链表中的节点;LeetCode10.删除链表的倒
    LeetCode24.两两交换链表中的节点题目链接:两两交换链表中的节点题目链接思路这道题其实就是一个模拟题,要求每次交换链表中两个相邻的节点(1、2节点互换;3、4节点互换;2、3节点不互换,意思就是交换过的节点不参与后续的交换了),同时只能进行节点交换,不能进行值交换。主要考......