数据结构与算法
十枚硬币
这个作者很懒,什么都没留下…
展开
-
【算法证明含证明过程】数组左部分中的最大值减去右部分最大值的绝对值,最大是多少?
证明如下:记左部分中最大值和右部分最大值中较大的一个为bigMax,较小的一个为smallMax。由题即求bigMax-smallMax的最大值。由式bigMax-smallMax可知,bigMax越大,smallMax越小则bigMax-smallMax值越大。故bigMax必为数组中的最大值,记为MAX。假设现在以MAX作为划分点,并假设MAX左右均有元素存在(若MAX为arr[0]或arr[arr.length-1]同理)。现在考虑以MAX为划分时,左部分的情况:将左部分分为arr[0]和从arr[0原创 2015-03-15 13:04:46 · 768 阅读 · 0 评论 -
digital root
这道题【https://leetcode.com/problems/add-digits/】自己写的答案代码:public int addDigits(int num) { if(num/9 == 0){ return num; } if(num%9 == 0){ return 9;原创 2015-09-23 18:49:32 · 512 阅读 · 1 评论 -
【LeetCode】记与Single Number相关
因为最近刚好在看《深入理解计算机系统》第二章,就一眼看出了原理:对于任何值a来说,a^a=0,因此有(a^b)^a=b,推广一下就是这道题的要求。启示:位级运算的效率很高。有时候复杂题目背后其实是某个公式的演绎。原创 2015-03-14 22:10:38 · 599 阅读 · 0 评论 -
【对递归的理解】Maximum Depth of Binary Tree
【题目描述】Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.求一棵二叉树的最大深度,利用递归实现。代码如下:/**原创 2015-03-23 15:49:24 · 384 阅读 · 0 评论