自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 程序员面试金典(java版)

原题:实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true分析:因为只能访问改节点,没法找到前一个节点进行删除,参照了别人的一个很巧妙的思路,就是把该节点变成他的后继节点,然后指向再下一个几点,也就变成删除了他的后继节点。代码如下:public class Rem

2017-02-02 19:58:15 317

原创 leetcode reorder-list(java实现)

原题:Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes' values.For example,Given{1,2,3,4}, reorde

2017-02-01 20:21:33 381

原创 leetcode linked-list-cycle(i 、ii)(java实现)

原题:Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull.Follow up:Can you solve it without using extra space?分析:给出一个线性列表,找出其中的环,返回这个环开始的节点。如果没有环,

2017-02-01 15:37:33 343

原创 leetcode 58. Length of Last Word(java实现)

原题:Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word in the string.If the last word does not exist, return 0.Note: 

2017-01-24 20:14:44 319

原创 leetcode 43. Multiply Strings 9大数相差(java实现)

原题:Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2.Note:The length of both num1 and num2 is Both num1 and num2 contains on

2017-01-06 16:53:37 294

原创 leetcode 49. Group Anagrams (Java实现)

原题:Given an array of strings, group anagrams together.For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"], Return:[ ["ate", "eat","tea"], ["nat","tan"], ["bat"]]题目大意:

2017-01-06 15:47:40 1788

原创 leetcode 28. Implement strStr() (java实现)

原题:Implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.题目大意:给出两个字符串,从第一个字符串中找到第二个字符串在其中的起始位置,如果不属于其子串,返回-1;分析:从第二个

2017-01-06 11:00:20 421

原创 leetcode16 3Sum Closest(java实现)

题目:Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would hav

2016-12-30 11:26:45 222

原创 leetcode15 3Sum(java 实现)

算法思路部分参见:http://blog.csdn.net/zhouworld16/article/details/16917071首先是求解:因为要求3个数,如果我们固定其中1个数,再用求“和为某值的2个数的组合”的解法,就能把剩下的2个数求出来。因此,先对数组进行非递减排序,这样整个数组的数就由小到大排列。i 的取值由 0 至 n-1,对每一个i,我们求当num[i]是解当

2016-12-30 10:13:58 592

原创 LeetCode1 TwoSum (java实现)

原题:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution.Example:Given

2016-12-28 11:04:16 226

原创 关于android中数据持久化存储的方法的知识整理

android中数据持久化存储大致有三种方式:1.文件存储;2.SharedPreferences;3.数据库存储各自的使用情况如下:1.文件存储:适用情况:不对数据做任何处理,直接保存到文件当中,适用于存储简单的文本或者二进制数据将文本数据保存到文件中的方法(过程):通过openFileOutput()方法——>得到FileOutputStream对象,借助它构建——

2015-11-14 15:38:12 639

原创 关于android中activity的四种启动模式

通过android:launchMode属性来设置      四种启动模式:standard、singleTop、singleTask、singleInstance1.standard默认的启动模式,每次激活activity时都会创建activity,并放入栈中,并处于栈顶的位置。系统性能消耗相对比较大。2.singleTop(解决重复创建栈顶活动的问题)在启动活动时,如果

2015-10-19 16:52:28 371

原创 hdu1448 寒冰王座 dp问题

题目描述:Problem Description不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前.死亡骑士:"我要买道具!"地精商人:"我们这里有三种道具,血瓶150块一个,魔法药200块一个,无敌药水350块一个."死亡骑士:"好的,给我一个

2015-09-24 10:01:02 626

原创 hdu1160 FatMouse's Speed 最长下降子序列 动态规划

题目描述:给出了两个数组,w[i]和[s[i],分别代表第i只老鼠的重量和速度,要求出满足重量严格递增,速度严格递减的子序列的最大长度,同时还要输出这个序列的每只老鼠对应的序号。解题思路:期初看到两个数组以为会复杂,不过后来想到可以设置一个结构体,存储老鼠的重量、速度和序号。然后将重量按递增排列,如有相同则将速度按递减排列,这样一来就只需考虑速度这个数组了。这样就变成了在这个数组上找到

2015-09-14 16:25:32 369

原创 hdu1114Piggy-Bank 多重背包问题

Problem DescriptionBefore ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income for this action comes from Irreversibly Bound Money (IBM). Th

2015-09-06 16:55:21 346

原创 hdu3591 The trouble of Xiaoqian(多重背包问题)

题目大意:           输入两个整数T和N,T代表一个人要买的东西的总钱数,N代表硬币的种类,接下来N个数V[i]代表各个硬币对应的面值,接着N个数c[i]代表每种硬币对应的数量,假定售货员的每种硬币的数目是无限的,求交易中的硬币的总个数(包括顾客支付的和售货员找回的),且要保证交易的硬币的总个数不大于20000.解题思路:       这个题目中要求的是交易中的最少的

2015-09-01 18:04:41 345

原创 hdu2191 多重背包问题

解题思路:        典型的多重背包问题,采用二进制思想来解决。MULTIPLE_PACK(cost,weight,amount)if cost * amount >= V then COMPLETE_PACK(cost,weight) returnint k ←1 while k < amount do ZER

2015-09-01 10:44:19 942 1

原创 HDU3496Watch The Movie (二维背包问题)

题目要求:       输入:三个整数N,M,L,分别代表想看的电影书,店里出售的电影数目,最长可看的时间,接下来给出N个电影各自的时长和价值      输出:能看到的最大价值,如果没有满足条件的输出0解题思路:二维背包问题,一个限制是时长之和有最大值,另一个是电影的数目有要求的值,为了方便用二维背包的思路求解,可以将第二个条件先看做是数目的最大值为M去求解,最后再找数目恰好为M的

2015-08-28 22:39:22 952

原创 HDU1712 ACboy needs your help(分组背包)

题目大意:       一个人在M天中完成N门课程,每门课程的分数和所用的时间有关系,求解如何安排学习得分最高。     输入:两个整数N和M,接下来是使一个N*M的矩阵A。A[i][j]代表用j天学习第i门课程的分数。    输出:得到的最大分数。解题思路:       每门作业i只能选择一个对应的天数来完成,也就是矩阵的每一行中至多之能选择一个数,典型的分组背包问题:分

2015-08-28 17:22:13 648

原创 HDU2159 FATE(二维背包问题)

题目要求:Problem Description最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏

2015-08-28 16:31:10 717

转载 背包九讲

P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便

2015-08-27 15:52:21 272

原创 HDU1171Big Event in HDU 背包问题

题目大意:有N种东西,现已知每样东西的价值和数量,将N种东西分成两堆,且保证第一堆的价值不少于第二堆的前提下,使两堆的价值尽可能相等解题思路:        考虑,由于第二堆的价值小于等于第一堆,也就是说第二堆的价值的最大值不能超过总价值的一般,把这个看成背包的容量,可以得到如下的状态转移方程  value[j]=max{value[j],value[j-facility[i]

2015-08-27 15:38:26 594

原创 HDU2955Robberies (0-1背包问题)

题目大意:       一个人要抢劫银行,在保证被抓概率小于某个预设的概率值时,尽可能抢到更多的钱。输入:第一行是一个整数t,代表测试用例的个数           接下来第一行是一个小数P和一个整数N,N代表银行的个数,P代表概率的上限。           接下来N行,每行两个数,第一个整数代表该银行的钱数,第二个小数代表被抓的概率。输出:输出每种情况能得到的最大的钱数。

2015-08-26 22:44:33 1232

原创 HDU2602Bone Collector 0-1背包问题

题目要求:Problem DescriptionMany years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went

2015-08-26 22:38:20 586

转载 vs2010调试

源地址:点击打开链接Reference from : http://blog.csdn.net/kingzone_2008/article/details/81330481 导言在软件开发周期中,测试和修正缺陷(defect,defect与bug的区别:Bug是缺陷的一种表现形式,而一个缺陷是可以引起多种Bug的)的时间远多于写代码的时间。通常,debug是指发现缺陷并改正的过

2015-08-26 15:43:41 315

原创 HDU1203I Need A Offer

题目要求:Problem DescriptionSpeakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),并且S

2015-08-26 11:43:34 525

原创 HDU1257最少拦截系统

题目要求:Problem Description某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大

2015-08-26 10:27:57 551

原创 HDU1009 FatMouse' Trade

题目大意:        一直老鼠想吃咖啡豆,这些咖啡豆由一只猫来看守,它需要用它有的猫粮来换。       读入两个整数m,n分别代表老鼠有的猫粮的总数,和放着咖啡豆的房间数。接下来n行,每行两个数j[i],f[i],分别代表这个房间中的总的咖啡豆的数量和需要的猫粮数,求出这时老鼠可获得的最大的猫粮数,知道接收到-1,-1结束处理。解题思路:        典型的贪心问题

2015-08-25 11:10:38 596

原创 hdu1051 Wooden Sticks

题目大意:        有一堆木棍要放到机器里面处理,第一根放进去的木棍需要1分钟的调整机器的时间,如果后续放进的木根的长度比它长且重量比它重,则不需要重新调整机器,否则要花1分钟时间来再次调整。给出这一堆木根的各自的长度和重量,求需要的最少的时间。解题思路:        考虑可以将木根排序,以长为第一要素,长度相同时参考重量,贪心算法,按升序排列。由于要标记木根是否已经被

2015-08-24 17:36:35 664

原创 HDU2037 事件排序问题

题目要求:Problem Description“今年暑假不AC?”“是的。”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...”确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国

2015-08-24 15:45:59 901 1

原创 HDU1050 Moving tables

题目大意:在一个长走廊里面搬桌子,走廊的两侧都是房间,把桌子从一个房间搬到另一个房间,走廊的宽度每次只允许搬一个桌子,每次搬桌子需要10分钟,问最少多长时间办完。输入:第一个数t代表测试用例,接下里是n,表示要搬的桌子的总数,接着n行代表每个桌子从房间i搬到房间j输出:最少需要的时间解题思路:首先考虑,给出的每次需要搬的房间号,实际情况中是可能从大的房间号往房间号小的房间搬,因

2015-08-24 11:37:22 609

原创 HDU1231 最大连续子序列和

Problem Description给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 为20。 在今年的数据结构考卷中,要求编写程序得到最大和,现在增加一个要求,即还

2015-08-20 11:06:14 1028

原创 HDU 1421

思路分析:# include # include using namespace std;int a[2005],b[2005];int dp[2005][2005];int getDP(int i,int j){ if(i<2*j) return 1000000000; if(j==0) return 0; return dp[i][j];}//针对特殊情况的

2015-08-18 18:27:48 329

原创 HDU 2084

经典的dp问题从上往下,状态转移方程为dp[i,j]=max{dp[i-1][j-1],dp[i-1][j]}+a[i,j]代码如下;(这是第一次AC的代码,应该可以继续优化,有时间再继续完善)# include # include using namespace std;int a[100][100],dp[100][100];int main(){ //freope

2015-08-18 16:58:41 618

原创 hdu1069

题目描述:一组研究人员正在设计一项实验,以测试猴子的智商。他们将以平均时间挂香蕉在建筑物的屋顶,提供给一些块猴子。如果猴子足够聪明,它应当能够通过叠加长方体,并爬上去拿到香蕉。研究人员有n个类型的块,每种类型的块无限供应。每种类型i的块为长方体与线性尺寸(xi,yi,zi)。 每个长方体可以按任意形状放置。他们希望确保最高的塔可以通过堆叠模块可以达到屋顶。问题在于,在构建塔,一个块

2015-08-16 16:37:33 497

原创 hdu1003 最大子序列的和

题目大意:给出一串数字,求出子序列中的最大和。思路:典型的dp问题,状态转移方程为:dp[i]=max{dp[i-1],dp[i-1]+a[i]}.设置start和end两个指标,用来记录结果子序列中的开始和结束的位置。值得注意的是这道题目中的格式要求很多,一开始没太在意所以wrong answer 了好几次。如下是第一次AC的代码:# include # include us

2015-08-16 16:24:06 472

原创 hdu1087

题目大意:下棋比赛,棋子是标有正整数,和“start”和“end”。从起点往终点跳,可以跨越一个甚至多个棋子,但不能后退,且下一个棋子的数值必须大于当前数值,求出从起点到终点的路径中经过的点的数值之和的最大值。也就是求上升子序列中的和的最大值。思路:动态规划问题,找出递推公式,用数组a[]来存储数据            dp[i]=max{dp[j]+a[i],a[i]} (当j,a[j

2015-08-14 11:11:03 417

原创 poj1458 hdu1159

题目大意:代码如下:# include using namespace std;char s1[1000];char s2[1000];int c[1001][1001];int main(){ while(scanf("%s",s1+1)!=EOF) { scanf("%s",s2+1); memset(c,0,sizeof(c)); int n,m,i,j

2015-08-13 21:46:12 439

原创 poj2231

题目大意:总结起来,相当于给出n个数,求这n个数的任意两个数的差值的绝对值的总和解题思路:首先,要明确一点,这n个数的输入顺序对结果是没有影响的,为了方便计算,将这些数按照升序排列。代码如下:# include # include using namespace std;long long int a[100001];int main (){ int N,i,j; l

2015-07-27 15:07:42 517

原创 PKU1138 Ugly Numbers

刚见到这道题的时候自然想到的方法就是采用下面的函数,直接顺序判断某个数是不是ugly numbers,结果超时了bool isUglyNumber(int a){ while(a%2==0){ a=a/2; } while(a%3==0){ a=a/3; } while(a%5==0){ a=a/5; } if(a==1) return true; else retur

2015-06-03 17:12:15 345

空空如也

空空如也

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

TA关注的人

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