自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 (no.23) Find the Duplicate Number 多种方法探讨

题目描述 分析实现 法一 若不考虑空间复杂度必须为O(1)的条件,在满足1、3、4的条件下,对于找寻重复的数字来说,很简便的一种方法就是映射。将元素值作为新开数组的下标,进行出现次数的统计。class Solution {public: int findDuplicate(vector<int>& nums) { int len=nums.size()+1;

2017-07-06 13:09:31 305

原创 Word Break

题目描述 待实现的函数接口的形参类型, bool wordBreak(string s, vector& wordDict) { … }分析 该题使用动态规划的思想能很快解决。我们需要明确以下几点, 1、只要能找到至少一种分割方法就可以返回true 2、找寻策略:将s从头开始,每次添加一个字符进行分割,看分割前后的两部分是否正好在字典里有。而分割前后的两部分的找寻策略同上。代码

2017-07-06 12:03:41 326

原创 最长公共子序列问题 细节注意

题目描述 求两个子串的公共最长子序列(LCS)的长度。分析 该题是一道非常经典的动态规划题目。需要注意一些细节,不要阴沟里翻船(下文会提到)代码实现 我们可以得到如下的递归式, 若i=0或者j=0,c[i,j]=0; 若i,j>0并且xi=yj,c[i][j]=c[i-1][j-1]+1; 若i,j>0并且xi≠yj,c[i][j]=max(c[i][j-1],c[i-1][j]);

2017-07-04 00:44:06 378

原创 算法证明题 8.9 HITTING SET

题目描述 In the HITTING SET problem,we are given a family of sets{S1,S2,…,Sn} and a budget b,and we wish to find a set H of size<=b which intersects every Si, if such an H exists.In other words, we want H

2017-07-03 21:45:30 736

原创 算法机考模拟题 part2

4 相连的1 题目描述 对于一个01矩阵A,求其中有多少片连成一片的1. 每个1可以和上下左右的1相连. 请为下面的Solution类实现解决这一问题的函数countConnectedOnes,函数参数A为给出的01矩阵,A的行数和列数均不大于1000. 函数的返回值是问题的答案. 例1: A= 100 010 001 答案为3. 例2:

2017-06-28 18:19:02 330

原创 算法机考模拟题 part1

-1 函数求值 题目描述 定义超级和函数F如下: F(0, n) = n,对于所有的正整数n.. F(k, n) = F(k – 1, 1) + F(k – 1, 2) + … + F(k – 1, n),对于所有的正整数k和n. 请实现下面Solution类中计算F(k, n)的函数(1 <= k, n <= 14). class Solution { publ

2017-06-28 18:00:26 301

原创 Compare Version Numbers字符串的应用+小技巧

题目描述 leetcode 中等难度题 “165. Compare Version Numbers” 评价 该题的题目描述的例子举得不是很好,会产生误导(至少我一开始就理解错题目了)。应该举如下的例子,“1.0.1”>”1”, “3.4.5.6”<”3.4.5.7”等,即点”.”不止只会出现一次。分析 在真正理解题目后,问题就变得简单了。我们可以把该问题转化为循环判断两部分的大小,直到能比

2017-06-14 20:35:32 476

原创 Minimum Time Difference不复杂

题目描述 leecode medium题 “539. Minimum Time Difference” 分析 别看该题是中等难度的题,只要缕清思路,就很简单,代码也很容易写。如题所述,我们要找最小的时间差。最暴力的一种方法就是让所给出的时间自由组合计算出各个的时间差,取最小的。但我们并没有必要计算出所有组合的,因为有些时间的组合我们是可以直接排除的。怎么排除?拿[00:20,12:45,20:1

2017-06-14 19:30:53 382

原创 Divide Two Integers不使用乘除法来计算两个数相除

题目描述 分析 不使用乘除法来计算两个数相除,那就从除法的定义出发:商表示的是被除数里包含了多少个除数。那最直接的一种办法,就是循环减除数,累加次数,直到不能再减。这么粗暴的办法,很容易会超时,举个极端的例子,若被除数是INT_MAX即2147483647,除数是1,那么就得减2147483647次,程序才能运行结束。所以,我们应该每次减多一点,我第一想到的便是位操作。因为,位操作可以看成是特殊的

2017-06-04 19:22:15 678

原创 计算一棵完整二叉树的结点数 C实现

题目描述 分析 学过图论的我们知道,一棵层数为h的完整二叉树的最大节点数为2^h-1(节点的层数:从根开始定义起,根为第1层,根的子节点为第2层…)。那么问题来了,若结点范围是在2^(h-1)和2^h之间,怎么算呢?一种很直接的方法便是等于左子树的结点数+右子树的节点数+1。至此,我们就大概知道代码怎么写了。如果刚好是满二叉树,那么节点数便是2^h-1;如果不是,那么就左子树、右子树的结点数分别加

2017-06-03 00:20:23 3077

原创 Split Array Largest Sum 二分查找应用 C实现

题目描述 初步分析 该题乍一看没有什么思路,于是我便直接思考用二分查找怎么做(因为该题是在二分查找分类下的)。那对什么东西来应用二分查找呢? 1、是对在m个子串的条件下,来找寻(m-1)个cut的位置上应用二分查找吗?如果是那样的话,二分查找的起始边界是什么,跳出查找的循环条件又是什么?显然这两个问题是很难具体确认的,我们应该再想想其他的。 2、本题最终需返回的是最小子串划分方法的最大子串值(

2017-05-19 20:31:37 416

原创 c 等差数列应用arranging coins 多种实现方法

题目描述 分析(实现方法1) 由题知每行(第1行、第2行…)coin的变化是1,2,3,4,5…..,即等差数列。若第k行刚好填满,则所有的coins数为Sk= k(k+1)/2。假设令2*Sk=m*m,则k(k+1)=m*m,可得m*m>k*k。也即k势必会比2*Sk开方的值小,但不会小太多。对于输入n,那么我们可以从m(m=sqrt(2*n))开始验算,看其附近有没有满足k(k+1)=2*

2017-05-13 01:53:59 603

原创 c实现double myPow(double x, int n)的细节讨论

题目要求 分析 最暴力的办法便是,挨个乘起来。该种做法耗时且浪费了可重复利用的资源。何为可重复利用的资源?举个例子,x^8=(x^2)^2^2, 再如x^5=(x^2)^2 * x。也即可以利用二分查找的思想,将累乘对半、对半、再对半划分,只需算一半便可得出结果,如下图所示。 上图是pow(x,10)的例子,x^10=((x^2)^2*x)^2代码实现double cal(double

2017-05-09 12:33:42 3858

原创 c 实现int sqrt(int x)函数的细节讨论

题目描述 分析 注意该函数返回的数据类型,是int。那么我们应用二分查找即可实现。细节讨论 于是我便写了如下所示的代码,然而运行超时了。int mySqrt(int x) { int low=0; int high=x; int mid,product; while(low<=high){ mid=(low+high)/2; p

2017-05-09 09:53:03 3016

原创 C语言实现 求两个数组的交集

题目描述 分析 其中一种逻辑比较清晰的方法就是分别对两个数组进行排序,再应用二路归并排序的思想来找出交集。下面是实现的代码,其中采用的排序方法是选择排序。代码实现void SelectSort(int *nums,int numsSize){ int min,temp; for(int i=0;i<numsSize-1;i++){ min=i; fo

2017-04-20 23:49:29 13517

原创 c 求字符串内无重复字符的最长子串

题目描述 分析 根据题意,最直接暴力的一种方法就是把所有子串都遍历一遍,选出没有重复字符且最长的子串即为结果。注意,本题只需要输出最长子串的长度即可,无需内容。初版代码int lengthOfLongestSubstring(char* s) { int len=strlen(s); int count=0; bool isOk=true; char *temp

2017-04-18 00:56:03 5111

原创 C 判断字符串是否是子集

题目描述 分析 该题是在leetCode“二分搜索”类下搜到的一题难度为medium的题。从题目的意思来看,其实就是判断子串的字符顺序是否在主串中出现过,若出现过,就返回true。就题目的意思来说,那我们最多遍历一次主串来挨个搜寻出子串的字符即可得出结果,很简单明了的一件事儿。之所以说是medium,是从若用运用二分搜索的思想来解该题的角度说的吧,而我到在写下这篇博客为止,还未能想到如何应用二分搜

2017-04-11 01:01:41 2589 1

原创 C 在行有序的矩阵中找出第k大的元素

题目描述 分析 初看这道题,找出第k大的元素,一个简单直接的方法就是排序。因为矩阵的每行都是有序的,可以考虑归并排序。这是一种解题思路,有没有其他方法呢? 有,应用二分搜索。我们换个角度来思考这个问题,把问题想象成找出一组数的第k大元素。那我可以对半(随机)找(猜)哇,先来一个值,看小于这个值的数有多少,不够(k-1)的话,那这个值就是设小了,我们放大一点(怎么放大?应用二分搜索的思想)重新数数

2017-04-11 00:06:14 1203

原创 Insert Interval区间插入题型求解 C实现

题目描述 分析 该题并不像其标签‘difficult’一样的难,其实就是一个对集合(区间)取并集的操作。 插入了一个新区间来取并集,关键就在于判断出原区间集中受新区间的覆盖影响情况以及确切的起始结束位置,剩下的区间照搬即可。代码 编程的思路请留意注释的内容。/** * Definition for an interval. * struct Interval { * int

2017-03-26 21:30:17 440

原创 判断二叉树是否为平衡树

题目 分析 判断二叉树是否为平衡树的关键就是每个节点的左右节点的树高差不超过1,也即对一个节点,其| leftHeight-rightHeight |<=1且其左节点和右节点也满足上述情况,以此类推。清楚了这一点后,代码就很容易写出来了。判断条件为若你存在有某节点的左右树高差大于1的,那么便不是二叉树;若你遍历了所有节点,都符合不大于1的条件,那么就是二叉树。而说到遍历,联系上述内容,我们就很容易

2017-03-19 14:41:04 373

原创 c实现 求一个数组中最大子序列的和 (两种方法)

||_ 题目描述||_ 分析 本题的核心是计算出一个序列的所有子序列中元素和为最大时的值,不要求输出对应的子序列是什么,而只要求输出和的最大值是多少。法一: 我们把序列分成两半(左边和右边),那么和最大的序列要么出现在左边序列,要么出现在右边序列,要么横跨左右两边。而左边序列又可以分成两半,以此类推;右边序列也一样。由此,便可分而治之了。 下面是代码:int maxSubArray(int

2017-03-08 18:22:33 1925

原创 找出一个数组中出现半数以上的元素 方法探讨

题目描述 分析 该题有多种解法,我们一个个来看。 最笨最直接的一种,就是我对数据的每个元素挨个挨个的去遍历求出它的出现次数,最后,取出现次数最高的那个即为所求。 代码如下: int majorityElement(int* nums, int numsSize) {int count[numsSize];int max=0,maxindex;for(int i=0;i<n

2017-03-05 23:04:44 1055

原创 C实现求一个整数的逆序

C实现求一个整数的逆序题目描述: 分析: 本题的关键点有两个, 核心 输入整数,逆序输出整数。如123,输出321 细节 若逆序后的整数溢出,应返回0实现: 一个实现的思路便是,把逆序前的数字一个个剥下来,再一个个拼回去。 ~ 那怎么剥呢? 我们知道一个数通过除以10取余数得到的便是它的个位,那除以10后再除以10取余数便能得到它的十位,以此类推。 ~ 那怎么拼呢? 想想

2017-02-26 22:34:43 1356 1

转载 Apache 、PHP的安装

参考教程:http://jingyan.baidu.com/album/e4d08ffd8fa40d0fd2f60dfd.html补充,若打开Apache安装目录下的“bin”文件夹中的“httpd.exe”测试服务器,提示说缺少XXX.dll,大多是没有安装VC14运行库的原因。VC14运行库下载链接:VC11运行库下载链接:http://www.microsoft.com/

2015-10-19 12:34:53 359

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除