- 博客(10)
- 收藏
- 关注
原创 39 Combination Sum
DFS处理,有两个比较坑的要求: Elements in a combination (a1, a2, … , ak) must be in non-descending order. (ie, a1 ≤ a2 ≤ … ≤ ak).The solution set must not contain duplicate combinations. 每个备选数字都可以用无限次。
2016-05-31 22:28:37 202
原创 34 Search for a Range
利用原数组中的元素是有序的,对数组进行二分,例如Given [5, 7, 7, 8, 8, 10] and target value 8, 若找到的序列ele[lo]==ele[hi]&&ele[lo]==target,说明这[lo,hi]区间的元素都为target,二分的结果有四种 1. 左边找到+右边找到,因为数组有序,找到的区间一定相邻! 这时候合并一下取 left=
2016-05-31 22:25:45 302
原创 33 Search in Rotated Sorted Array
直接二分,例如原数组{0,1,2,4,5,6,7} 旋转为 {7,0,1,2,4,5,6} 找到数组中间位置,分成左右两半 {7,0,1,2} 和 {4,5,6} 比较数组的两端的元素大小,利用原数组是有序的这个重要性质: 如果满足ele[lo] 若不满足ele[lo] public int search(int[] nums, int target)
2016-05-31 22:13:47 158
转载 32 Longest Valid Parentheses
文字分析部分摘自 http://blog.csdn.net/zhangwei1120112119/article/details/16812679 求最长的括号匹配的子串 比如 ())()()的括号匹配的子串为(),()()两个,最长的长度为4 解法: 维护一个栈,栈底值为上次匹配失败的位置 首先初始放一个-1入栈代表上次匹配失
2016-05-31 22:10:04 145
转载 检测是否超出int范围 && 11. Container With Most Water
整数范围 和maxint,minint作差 if(len==10) { char[] pomaxrange={'2','1','4','7','4','8','3','6','4','7'}; char[] nemaxrange={'2','1','4','7','4','8','3','6','4','8'}; boolean inrange=true; if(i
2016-05-26 21:54:20 191
原创 最长回文字串
import java.util.Arrays; public class test200 { public static void main(String[] args) { String s="xabbac"; int a=longestPalindrome(s); System.out.println(); } public static int longest
2016-05-25 21:52:34 170
转载 单链表反转
Node* ReverseList(Node* head) { Node *p,*q; p=head->next; while(p->next!=NULL) //在这个循环过程中p所指的元素一直是不变的 { q=p->next; p->next=q->next; q->next=head
2016-05-25 21:49:55 160
原创 P1035 棋盘覆盖 (二分图匹配、最大网络流)
描述 给出一张n*n(n 输入格式 第一行为n,m(表示有m个删除的格子) 第二行到m+1行为x,y,分别表示删除格子所在的位置 x为第x行 y为第y列 输出格式 一个数,即最大覆盖格数 二分图最大匹配 二维的棋盘可以转换为一维来表示,比如8*8棋盘上的点(6,5),转换为相应的一维id=44,点(x,y
2016-05-20 21:56:45 962 1
原创 P3250 最长链
【问题描述】 现给出一棵N个结点二叉树,问这棵二叉树中最长链的长度为多少,保证了1号结点为二叉树的根。 输入格式 输入文件chain.in的第1行为包含了一个正整数N,为这棵二叉树的结点数,结点标号由1至N。 接下来N行,这N行中的第i行包含两个正整数l[i], r[i],表示了结点i的左儿子与右儿子编号。如果l[i]为0,表示结点i没有左儿子,同样地,如
2016-05-18 11:42:31 343
转载 P1071 LCIS 最长公共上升子序列
定义状态d [ i ] [ j ]表示以a数组的前i个元素,b数组的前j个元素并且以b[j]为结尾的LCIS的长度。 首先:a [ i ] != b[j]时, d[i] 举个例子 a={1, 4, 2, 5, -12} b ={5, -12, 1, 2, 4, 5} 5 -12 1 2 4 5
2016-05-03 09:52:29 267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人