- 浏览: 137543 次
文章分类
- 全部博客 (189)
- Tree (14)
- Dynamic Programming (34)
- Array (20)
- Search (1)
- Hash (12)
- Backtracking (22)
- Divide and Conque (8)
- Greedy (6)
- Stack (12)
- software (0)
- List (7)
- Math (22)
- Two pointers (16)
- String (20)
- Linux (1)
- Sliding Window (4)
- Finite State Machine (1)
- Breadth-first Search (7)
- Graph (4)
- DFS (6)
- BFS (3)
- Sort (9)
- 基础概念 (2)
- 沟通表达 (0)
- Heap (2)
- Binary Search (15)
- 小结 (1)
- Bit Manipulation (8)
- Union Find (4)
- Topological Sort (1)
- PriorityQueue (1)
- Design Pattern (1)
- Design (1)
- Iterator (1)
- Queue (1)
最新评论
-
likesky3:
看了数据结构书得知并不是迭代和递归的区别,yb君的写法的效果是 ...
Leetcode - Graph Valid Tree -
likesky3:
迭代和递归的区别吧~
Leetcode - Graph Valid Tree -
qb_2008:
还有一种find写法:int find(int p) { i ...
Leetcode - Graph Valid Tree -
qb_2008:
要看懂这些技巧的代码确实比较困难。我是这么看懂的:1. 明白这 ...
Leetcode - Single Num II -
qb_2008:
public int singleNumber2(int[] ...
Leetcode - Single Num II
[分析] 数值计算类型题目,二分法或者借助位运算,本题两种方法都可解。实现1是二分法思路,缺点是递归可能导致栈溢出。实现2是借助位运算,并进行了各种溢出检查和处理。实现3同样是位运算法,除了计算过程使用long类型的n外没有进行其他溢出保护,代码非常简洁,利于理解题目本身思路,实际应用中需要像实现2那样做溢出检查以保证程序的健壮性。
[ref]
http://www.cnblogs.com/TenosDoIt/p/3802902.html
http://blog.csdn.net/linhuanmars/article/details/20092829
[ref]
http://www.cnblogs.com/TenosDoIt/p/3802902.html
http://blog.csdn.net/linhuanmars/article/details/20092829
public class Solution { // Method 1: 二分法 public double myPow1(double x, int n) { if(n == 0) return 1; if(x == 0) return 0; else if(x == 1) return 1; else if(x == -1){ return ((n & 1) == 1) ? -1 : 1; } double half = myPow(x, n / 2); if((n & 1) == 0)//even return half * half; else if(n > 0) return half * half * x; else return half * half / x; } // Method 2:位运算, 包含各种防溢出处理 public double myPow2(double x, int n) { if (x == 0) return 1; double res = 1.0; if (n < 0) { if (x >= 1.0 / Double.MAX_VALUE || x <= 1.0 / Double.MIN_VALUE) x = 1.0 / x; else return Double.MAX_VALUE; if (n == Integer.MIN_VALUE) { res *= x; n++; } } boolean isNeg = false; if (x < 0 && (n & 1) == 1) isNeg = true; x = Math.abs(x); n = Math.abs(n); while (n > 0) { if ((n & 1) == 1) { if (res < Double.MAX_VALUE / x) res *= x; else return Double.MAX_VALUE; } x *= x; n >>= 1; } return isNeg ? -res : res; } // Method 3: 位运算,不检查溢出 public double myPow(double x, int n) { if (x == 0) return 1; double res = 1.0; long nn = n; if (nn < 0) nn = -nn; while (nn > 0) { if ((nn & 1) == 1) { res *= x; } x *= x; nn >>= 1; } return n >= 0 ? res : 1.0 / res; } }
发表评论
-
Smallest Rectangle Enclosing Black Pixels
2016-02-13 12:39 901An image is represented by a bi ... -
Leetcode - H-Index II
2015-09-06 09:39 1101Follow up for H-Index: What if ... -
Leetcode - Integer to English Words
2015-09-04 20:53 1104[分析] 这题通过率之所以非常低是因为有很多corner ca ... -
Leetcode - Strobogrammatic Number III
2015-09-03 16:45 2179A strobogrammatic number is a n ... -
Leetcode - Basic Calculator II
2015-08-27 09:16 906mplement a basic calculator to ... -
Leetcode - Factorial Trailing Zeroes
2015-08-25 09:00 430[思路] 数乘积结果的后缀0,其实就是数结果中有多少个因子10 ... -
Leetcode - Ugly Number II
2015-08-24 22:54 1163[分析] 暴力的办法就是从1开始检查每个数是否是丑数,发现丑数 ... -
Leetcode - Excel Sheet Column Title
2015-08-24 10:24 641[分析] 十进制转26进制,需要注意的是26进制是以1为最小数 ... -
Leetcode - Max Points on a Line
2015-08-23 15:30 724[分析] 两条直线若包含一个公共点且斜率相同,则为同一条直线。 ... -
Leetcode - Fraction to Recurring Decimal
2015-08-23 10:05 468[分析] 处理int型整数运算时,为避免溢出,省事的做法就是内 ... -
Leetcode - Palindrome Permutation
2015-08-22 16:24 1188[分析] 思路2让我大开眼界,顺便学习下BitSet~ [re ... -
Leetcode - Count Primes
2015-08-22 13:42 511[ref] https://en.wikipedia.org/ ... -
Leetcode - Strobogrammatic Number
2015-08-22 10:48 1092A strobogrammatic number is a n ... -
Leetcode - Add Binary
2015-08-21 09:28 470[分析] 从低位往高位逐位相加,就是这么一个简单的题却花了我一 ... -
Leetcode - Rotate Image
2015-08-19 19:51 500[分析] 自己的思路:从外到内一圈圈顺时针旋转90度,坐标映射 ... -
Missing Ranges
2015-08-19 09:48 515[分析] 此题若不考虑极大值极小值相关的corner case ... -
Leetcode - Single Number III
2015-08-17 20:24 1858Given an array of numbers nums, ... -
Leetcode - Repeated DNA Sequences
2015-08-17 13:43 416All DNA is composed of a series ... -
Leetcode - Bitwise AND of Number Range
2015-08-17 09:41 507Given a range [m, n] where 0 &l ... -
Leetcode - Power of Two
2015-08-16 21:48 487Given an integer, write a funct ...
相关推荐
js js_leetcode题解之50-powx-n.js
c语言入门 C语言_leetcode题解之50-powx-n.c
- N-Queens / N-Queens II: 第一个问题是经典的N皇后问题,要求在一个N×N的棋盘上放置N个皇后,使得它们互不攻击;第二个问题则是对第一个问题的求解数的计数。 - Maximum Subarray: 寻找一个整数数组中,连续子...
- 数学问题是算法面试中另一类重要的问题,例如 PlusOne 和 Pow(x,n) 题目涉及数学计算。 - 数学问题往往需要对特定的数学规则有深入理解,如数学归纳、组合数学等。 9. **二叉树**: - 二叉树的遍历和构建是...
Pow(x, n) 前 K 个频繁元素 课程表二 添加二进制 删除链表元素 词搜索 二叉树之字形水平顺序遍历 单号 III 从源到目标的所有路径 在旋转排序数组中求最小值 II 添加数字 从中序和后序遍历构造二叉树 任务计划程序 有...
pow(x,n) 简单的 7号 反向整数 简单的 6号 之字形反转 简单的 2号 添加两个数字 简单的 3号 无重复字符的最长子串 中等的 4号 两个有序数组的中位数 难的 2016 年 11 月 17 日更新 数字 问题 等级 最长回文子串 中等...
标题“Pow(xn) leetcode-Binary-Search-3: Binary-Search-3”提示我们关注的是LeetCode上的一个编程挑战,它涉及到幂运算(Pow(x, n))以及二分搜索(Binary Search)的第三种应用。描述中的“问题1 Pow(x, n)”可能...
50-powx-n.md 6字形转换.md 7-反向整数.md 9回文数101-150(数量:30) 第101章 第102章 103二叉树之字形水平遍历.md 二叉树最大深度104.md 105从预购和有序遍历构建二叉树.md 106从顺序和后顺序
股票买卖最佳时机leetcode 大批 (53) 最大子阵列 (54) 螺旋矩阵 (57) 插入间隔 (73) ...Pow(x, n) (69) 平方(x) (153) 在旋转排序数组中找到最小值 (154) 在旋转排序数组中求最小值 II (162) 寻找峰
在旋转排序数组中搜索140.Fast Power 428.Pow(x,n) 845.最大公约数39.恢复旋转排序数组8,旋转字符串 两个指针56.两次相加415.有效回文891.有效回文II 521.删除重复的号码604.窗口总和610.TwoSum-差等于目标228....
leetcode 530 力码练习 前 250 个问题 1 二和 :check_mark: 3 无重复字符的最长子串 ...Pow(x, n) 51 N-Queens 52 N-Queens II 53 最大子阵 54 螺旋矩阵 55 跳跃游戏 56 合并间隔 57 插入间隔 59 螺旋矩阵II 6
猜单词leetcode 通过 leetcode 学习数据结构与算法 数据结构 data structure 数组(栈 队列) 链表 ...50.pow-x-n.js 69.x-的平方根.js 278.第一个错误的版本.js 374.猜数字大小.py 递归 recursion +
50.pow-x-n 题目: 答案: 69.x-的平方根 题目: 答案: 70.爬楼梯 题目: 答案: 94.二叉树的中序遍历 题目: 答案: 101.对称二叉树 题目: 答案: 141.环形链表 题目: 答案: 206.反转链表 题目: 答案: 剑指...
n-1 个整数的列表,这些整数在 1 到 n 的范围内。列表中没有重复项) 268.漏号 11. 编写代码来确定两棵树是否相同 100. 同一棵树 12. 编写一个程序来求一棵树的最大深度或高度 104. 二叉树的最大深度 13.将二叉树...
Pow(x, n) 中等的 51 N皇后区 难的 56 合并间隔 中等的 64 最小路径和 中等的 69 平方(x) 简单的 73 设置矩阵零 中等的 74 搜索二维矩阵 中等的 77 组合 中等的 78 子集 中等的 83 从排序列表中删除重复项 简单的 ...
LeetCode笔记本docsifyjsLeetCode算法Java c / c ++ javascript的... Pow(x, n)34. First & LastPositionElementInSortedArr94. Binary Tree Inorder Traversal144. Binary Tree Preorder Traversal145. Binary Tree
Pow(x, n) 最长公共子序列 第一个唯一编号 合并间隔 独特的路径 加一 二叉树最大路径和 检查字符串是否是二叉树中从根到叶路径的有效序列 排序颜色 最小窗口子串 第一个坏版本 子集 克隆图 直方图中最大的矩形 Base ...
Pow(x, n)中 53最大子阵列简单 55 Jump Game Medium 56合并间隔中等 57插入间隔硬 60排列序列介质 61轮播列表中 62条独特的路径中 64最小路径和中 66加一轻松 67添加二进制简单 70爬楼梯容易 72编辑距离困难 74搜索...
删除无效括号 leetcode ...Pow(x, n) M 2018-6-7 北京 Y 无重复字符的最长子串 M 2018-6-10 北京 Y 删除排序数组中的重复项 E 2018-6-13 北京 Y 字符串转整数 M 2018-6-15 北京 Y 有效的括号 E 2018-