随笔分类 - leetcode
摘要:例六、 Charm Bracelet 0-1背包问题(POJ3624)有N件物品和一个容积为M的背包。第i件物品的体积 w[i],价值是d[i]。求解将哪些物品装入背包可使价值总 和最大。每种物品只有一件,可以选择放或者不放 (N<=3500,M <= 13000)。21 0-1背包问题(POJ36
阅读全文
摘要:买卖股票的最佳时机 II 给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: p
阅读全文
摘要:例五、神奇的口袋 有一个神奇的口袋,总的容积是40,用这个口袋可以变出 一些物品,这些物品的总体积必须是40。 John现在有n(1≤n ≤ 20)个想要得到的物品,每个物品 的体积分别是a1,a2......an。John可以从这些物品中选择一 些,如果选出的物体的总体积是40,那么利用这个神
阅读全文
摘要:代码:递归 #include <iostream> #include <cstring> #include <algorithm> using namespace std; char str1[10]; char str2[10]; int maxLen(char str1[],char str2[
阅读全文
摘要:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 // nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝 int len =
阅读全文
摘要:例题二:最长上升子序列问题描述一个数的序列ai,当a1 < a2 < ... < aS的时候,我们称这个序 列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到 一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <
阅读全文
摘要:递归动态规划: 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 int D[10][10];//i,j位置的值 6 int n; 7 int maxSum[10][1
阅读全文
摘要:#include <iostream> using namespace std; int n; int shangtaijie(int n){ if(n==0)return 1; if(n<0)return 0; return shangtaijie(n-1)+shangtaijie(n-2); }
阅读全文
摘要://n皇后问题递归 #include <iostream> #include <cmath> using namespace std; int queen[100]; int n; void Nqueen(int k){ int i; if(k==n){//n个皇后已经摆好 for(i=0;i<n;
阅读全文
摘要://汉诺塔 #include <iostream> #include <cstring> using namespace std; void hanuoi(string a,string b,string c,int n) { if(n==0){ return ; }else{ hanuoi(a,c
阅读全文
摘要:给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 示例 1: 输入: [1,2,3,1]输出: true示例 2: 输入: [1,2,3,4]输出: false示例 3: 输入: [1,1,1,3,3
阅读全文