zoukankan      html  css  js  c++  java
  • LeetCode OJ---Sqrt(x)

    题目链接:

    http://oj.leetcode.com/problems/sqrtx/


    看题目就知道是水题一枚,做这个平台的题目还是没有习惯,毕竟这里的题目都是以面试为目的的,所以Coding的时候一定要谨慎.

    这里使用二分查找,二分虽然思路很简单,但是代码还是有几个地方值得注意的,

    比如 mid = left + (right - left) / 2; 你是不是会使用 mid = (left + right) / 2;但是你有没有考虑过做加法有可能会溢出?而且跳出 while()循环的条件一定要仔细考虑,避免因为粗心而产生死循环。


    附上我的代码:

     1 class Solution {
     2 public:
     3     int sqrt(int x) {
     4         if (0 == x) return 0;
     5         int left = 1, right = x, ans;
     6         while (left <= right) {
     7             int mid = left + (right - left) / 2;
     8             if (mid <= x / mid) {
     9                 left = mid + 1;
    10                 ans = mid;
    11             } else {
    12                 right = mid - 1;
    13             }
    14         }
    15         return ans;
    16     }
    17 };


  • 相关阅读:
    css基础1
    js基础
    定位与浮动
    最新学习
    前端初学第一天
    js2
    js1
    html加css
    js三元表达式
    java script的学习
  • 原文地址:https://www.cnblogs.com/Stomach-ache/p/3703159.html
Copyright © 2011-2022 走看看