算法设计
番茄发烧了
一介匹夫 随心而去
展开
-
算法设计:求逆序
public class Lamada { static int count = 0; // 将有二个有序数列a[first...mid]和a[mid...last]合并。 static void mergearray(int a[], int first, int mid, int last, int temp[]) { int i = first,...转载 2019-03-22 21:43:48 · 580 阅读 · 0 评论 -
leetcode[198]:House Robber
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent hous...原创 2019-03-04 20:16:34 · 190 阅读 · 0 评论 -
leetcode[53]:Maximum Subarray
给定一个int数组,求最大子序列和Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.Example:Input: [-2,1,-3,4,-1,2,1,-5,4],Out...原创 2019-03-04 19:29:47 · 130 阅读 · 0 评论 -
leetcode[70]:Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?Note: Given n will be a positive ...原创 2019-03-04 17:29:24 · 117 阅读 · 0 评论 -
leetcode[746]:Min Cost Climbing Stairs
On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed).Once you pay the cost, you can either climb one or two steps. You need to find minimum cost to reach the top of ...原创 2019-03-04 16:52:37 · 152 阅读 · 0 评论 -
leetcode[983]:Minimum Cost For Tickets
本题是个求最小值问题,题目描述:如果要在一年内去旅游,现给定你旅游的日期(1-365天)的数组,一个包日车票数组价格,比如包1天2块钱,包7天7块钱,包30天15块钱这样。求一年内能把所有规定日期都旅游完的最便宜买票策略。例:days[1,4,6,7,8,20],表明你要在1,4,6,7,8,20去旅游。(范围为1-365)costs[2,7,15],表明1天的车票是2块钱,7天的车票是7块...原创 2019-03-06 11:23:31 · 241 阅读 · 0 评论 -
动态规划——最长公共子序列
lintcode-77 描述给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。这道题可以看做最长连续公共子序列的升级版首先看状态转移:当A[m]=B[n]时,则LCSCount=f[m-1][n-1]+1当A[m]≠B[n]时,则LCSCount=min(f[m-1][n],f[m][n-1]) public static int longestSubstring...原创 2019-02-26 19:46:05 · 247 阅读 · 0 评论 -
动态规划——最长连续公共子序列
public static int longestSubstring(String A,String B){ int f[][] = new int[A.length()+1][B.length()+1]; for (int i = 1; i <= A.length(); i++) { for (int j = 1; j <= ...原创 2019-02-26 19:38:02 · 2176 阅读 · 0 评论 -
算法设计——回溯法
回溯法是一种优化的DFS深度优先搜索。DFS通过visit[i]数组来记录访问过的节点,那么就和回溯法没什么两样了。void DFS(){ if(t>n)//n为深度,t为每次遍历的深度 { Output(x); } else { for(int i=0;i<=节点所包含子节点数量){ x[i]=h[i];//x[i]出的节点值,可以看做是限定条件 i...原创 2019-02-28 15:42:42 · 450 阅读 · 0 评论