
Code
文章平均质量分 63
bxw1992
这个作者很懒,什么都没留下…
展开
-
Find Minimum in Rotated Sorted Array
思路:依旧借用二叉搜索的方法,使用rank()函数。题目假设没有重复数字,可以肯定的是,循环结束是因为while条件不满足。此时必定有,将nums[i]>key不成立,在此前,nums[i]>key是一定成立的。所以 i 是,像 “4 5 6 7”这样序列后移一位的下标,如果是序列是升序,没有翻转,i会会越界,注意判断。if(nums[mid]>key) i=mid+1;题目:原创 2017-07-11 22:04:08 · 184 阅读 · 0 评论 -
计算两个日期间的天数
#includeusing namespace std;int months[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };struct date{ int year; int month; int day; date(){} date(int y, int m, int d) { year = y;原创 2017-09-04 18:34:22 · 229 阅读 · 0 评论 -
堆排序
知识点:二叉树: 任意节点 i,其父节点为(i+1)/2-1 左孩子节点为 2*i+1 右孩子节点为 2*i+2堆排序: 堆是完全二叉树结构,用数组实现。根节点的下标为0。 最关键是AdjustHeap()函数,此函数实现大顶堆或小顶堆操作,输入是:存放堆的数组,子树的根节点索引,堆的大小。调整过程是,从子树的根节点原创 2017-07-13 14:21:37 · 172 阅读 · 0 评论 -
Code(一)排序算
#includeusing namespace std;void swap(int *a, int *b){ int temp; temp = *a; *a = *b; *b = temp;}void sort_select(int *vec, int len) //选择排序 { if (len <= 1) return; for (int i = 0; i < le原创 2017-06-29 14:35:07 · 214 阅读 · 0 评论 -
sqrt函数实现-二叉搜索
知识点:1、这道题目用搜索的办法求解sqrt函数,对于复杂的函数均可以用搜索的方式实现。(前提是得到整数解,因为不是整数解无法遍历)2、对数据边界的考虑,在计算中,尽量不要用乘法。比如要考虑 a*b 和 x的比较关系,转化为a和x/b的比较,这样做避免了a*b可能产生的整数溢出问题。与此同时,产生了新的问题:b必然不能等于0,这个要稍加注意;x/b也会存在向下取整的问题。3、二叉搜索原创 2017-07-11 21:25:57 · 266 阅读 · 0 评论 -
阿里巴巴内推编程测验题目
从上面的思路中我们可以得到一些有用的结论:针对存在的一个子嵌套集,新的二段模式的加入,可以生成新的子嵌套集,也就是造成分支;进一步我们可以认为,一个二段模式最多可以生成一个分支,而且一个分支主要是因为某个二段模式与其他嵌套集冲突造成的,也就是一个二段模式可以对应一个嵌套集;N个二段模式最多组成N个独立的嵌套集。原创 2017-07-06 12:53:44 · 6906 阅读 · 1 评论 -
Container With Most Water
思路:首先要理解清楚,两条直线构成一个容器,不考虑容器中的直线。首先取两端的直线,这样底边是所有方案中最长的,如果想找体积更大的方案,那么只能找更高的容器,因为其他方案底边只能更短。一个容器的高度是由较低的直线决定的,所以要想获得比当前状态更优的方案,那么只能更新较短的直线,才有可能获得更优的方案(这个地方,可以跳过比最短边还短的直线,但是没必要)。这个思路有点贪心策略的意思,在对问题求解原创 2017-07-04 21:17:02 · 245 阅读 · 0 评论 -
String to Integer (atoi)
思路:获取的知识点:0对应的ASCII码:48,一般判断时,需要用 ‘0’ ‘9’来去表示字符这个题目需要自己考虑各种可能的输入,并加以处理。discards all leading whitespaces 数字前的空格sign of the number 数字的符号overflow原创 2017-07-04 20:19:25 · 233 阅读 · 0 评论 -
Longest Palindromic Substring
思路:这个题目的解题思路是,要将不同的条件下的编程统一起来。比如,最长的回文子串需要以一个字符或两个相同的字符为中心向两边扩展。其实,一个字符可以等效于同一位置的两个字符。终止条件的统一处理,终止有两个原因:字符串到了边界,两边字符不相等,要注意将两种不同情况下终止的后续处理统一起来。题目:Given a string s, find the longest palindr原创 2017-07-04 16:49:53 · 164 阅读 · 0 评论 -
Add Two Numbers
概括知识点:这是关于链表的一个知识点,当我们要返回一个链表时,这个链表的一般是在循环内部动态追加的,所以,头部的创建必须在循环外面。这就有一个问题,链表的头部一般是节点类型指针head,而且我们需要用一个变量h将链表头部传递到循环内。如果变量也是一个节点指针,令h=head,那么在循环体内,对h进行改变,将不会作用于head,所以h必须是指向节点类型指针的指针。题目:You a原创 2017-07-03 20:07:40 · 184 阅读 · 0 评论 -
动态规划—组合成指定值
概述:刷leetcode,遇到2道动态规划题目,分别为coin change II,target sum。这2个题同属于一类题目,即根据提供的一组数字组合成一个指定的数目,coin change II中的数字是可以重复的,target sum 的数字是不可以重复的,这点区别导致他们在进行动态规划时是不同的。coin change II的方向是从下往上,target sum是从上往下。题目:原创 2017-07-03 11:21:06 · 617 阅读 · 0 评论 -
Target Sum
思路: //1、将问题转换为,根据给定的一组数字(数量是指定的),寻找所有的组合方案 //2、这个思路可用于,coin change问题,等一类组合问题 //3、注意如果给定的数字可以重复使用,那么循环可以从下往上走,参考注释掉的部分题目:You are given a list of non-negative integers,原创 2017-07-03 10:43:41 · 186 阅读 · 0 评论 -
Coin Change
题目:You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount原创 2017-07-02 22:56:41 · 368 阅读 · 0 评论 -
longest Substring Without Repeating Characters
题目:Given a string, find the length of the longest substring without repeating characters.Examples:Given "abcabcbb", the answer is "abc", which the length is 3.Given "bbbbb", the an原创 2017-07-02 21:10:35 · 242 阅读 · 0 评论 -
Search for a Range
思路:1、如果数组中不存在目标值 ,则返回[-1,-1]。2、如果存在目标值,目标值索引为mid,上下范围为[i,j],然后进入处理子程序。3、两个子处理程序,分别在[i,mid],[mid,j]中寻找目标值的边界。题目:Given an array of integers sorted in ascending order, find the starting and原创 2017-07-11 23:16:21 · 191 阅读 · 0 评论 -
实现除法
基本的策略就是:利用移位操作实现乘以2和除以2除数等于0和1是特殊情况,可以提前判断,a1、被除数b乘以1,2,4,.......,2^n,直至b*2^n>=a,注意等号的区别处理2、结果加上2^(n-1),a减去b*2^(n-1)3、对a-b*2^(n-1),重复执行1,2int div1(int a, int b){ if (b == 0) return -1; if原创 2017-09-04 20:19:03 · 2392 阅读 · 0 评论