50. Pow(x, n)

就是一个递归,顺便复习下指数运算

  1. var myPow = function(x, n) {
  2. if (n === 0) {
  3. return 1;
  4. }
  5. if (n < 0) {
  6. return 1 / myPow(x, -n);
  7. }
  8. if (n % 2 === 0) {
  9. return myPow(x * x, n / 2);
  10. } else {
  11. return x * myPow(x, n - 1);
  12. }
  13. };

69. x 的平方根

  1. var mySqrt = function(x) {
  2. if (x <= 1) {
  3. return Math.min(x);
  4. }
  5. let result = 0;
  6. for (let i = 1; i * i <= x; i++) {
  7. if (i * i <= x) {
  8. result = i;
  9. }
  10. }
  11. return result;
  12. };

二分法:

  1. var mySqrt = function(x) {
  2. if (x <= 1) {
  3. return Math.min(x);
  4. }
  5. let left = 0;
  6. let right = Math.floor(x / 2);
  7. let ans;
  8. while (left <= right) {
  9. let mid = Math.floor((left + right) / 2);
  10. if (mid * mid <= x) {
  11. ans = mid;
  12. left = mid + 1; // 让指针真的动起来
  13. } else {
  14. right = mid - 1;
  15. }
  16. }
  17. return ans;
  18. };