c#算法练习
蜂蜜柚子茶很好喝
这个作者很懒,什么都没留下…
展开
-
二叉树的前中后序遍历
二叉树的前中后序遍历问题解决(leetcode)原创 2022-07-02 18:07:30 · 179 阅读 · 0 评论 -
[c#] 打家劫舍 II
publicclassSolution{publicintRob(int[]nums){//判断为0和为1时的值if(nums.Length==0)return0;if(nums.Length==1)returnnums[0];intR1=robRange(nums,0,nums.Length-2);//不偷第一家的情况intR2=robRange(nums,1,n...原创 2022-04-11 23:50:27 · 84 阅读 · 0 评论 -
【c#】打家劫舍
publicclassSolution{publicintRob(int[]nums){if(nums.Length==0)return0;if(nums.Length==1)returnnums[0];//要加上判断int[]dp=newint[nums.Length+1];dp[0]=nums[0];dp[1]=Math.Max(nums[0],nums[1]);...原创 2022-04-10 01:10:05 · 896 阅读 · 0 评论 -
【c#】单词拆分
publicclassSolution{publicboolWordBreak(strings,IList<string>wordDict){varwordDictSet=newHashSet<string>(wordDict);//c#哈希表的定义vardp=newbool[s.Length+1];dp[0]=true;for(inti=1;i...原创 2022-04-10 00:29:33 · 269 阅读 · 0 评论 -
【C#】完全平方数
这题和零钱兑换类似,所以解法也差不多publicclassSolution{publicintNumSquares(intn){int[]dp=newint[n+1];dp[0]=0;for(inti=1;i<=n;i++){dp[i]=int.MaxValue-1;for(intj=1;j*j<=i;j++){...原创 2022-03-31 00:27:21 · 564 阅读 · 0 评论 -
[c#]零钱兑换
publicclassSolution{publicintCoinChange(int[]coins,intamount){int[]dp=newint[amount+1];dp[0]=0;for(intj=1;j<=amount;j++){dp[j]=int.MaxValue-1;//初始化for(inti=0;i<coins.L...原创 2022-03-28 23:58:13 · 729 阅读 · 0 评论 -
[c#]组合总和
publicclassSolution{publicintCombinationSum4(int[]nums,inttarget){int[]dp=newint[target+1];dp[0]=1;for(intj=0;j<=target;j++){for(inti=0;i<nums.Length;i++){if(j-nums[i]&g...原创 2022-03-27 00:01:54 · 572 阅读 · 0 评论 -
【c#】零钱兑换
publicclassSolution{publicintChange(intamount,int[]coins){int[]dp=newint[amount+1];dp[0]=1;//初始化为1for(inti=0;i<coins.Length;i++){for(intj=coins[i];j<=amount;j++){dp[j]+=...原创 2022-03-25 23:30:11 · 128 阅读 · 0 评论 -
【c#】一和零
publicclassSolution{publicintFindMaxForm(string[]strs,intm,intn){//定义数组int[,]dp=newint[m+1,n+1];//迭代在strs数组当中的数foreach(stringstrinstrs){intOneNum=0,ZeroNum=0;统计1和0的数量...原创 2022-03-24 00:09:21 · 429 阅读 · 0 评论 -
c#子集和
publicclassSolution{publicintFindTargetSumWays(int[]nums,inttarget){intsum=0;for(inti=0;i<nums.Length;i++){sum+=nums[i];}if(target>sum)return0;if((sum+target...原创 2022-03-24 00:07:41 · 1099 阅读 · 0 评论 -
c# 最后一块石头的重量
publicclassSolution{publicintLastStoneWeightII(int[]stones){intsum=0;for(inti=0;i<stones.Length;i++){sum+=stones[i];}inttarget=sum/2;int[]dp=newint[target+1];f...原创 2022-03-22 00:22:20 · 803 阅读 · 0 评论 -
【c#】分割等和子集
publicclassSolution{publicboolCanPartition(int[]nums){intsum=0;for(inti=0;i<nums.Length;i++){sum+=nums[i];//计算数组当中的所以数的和}if(sum%2==1)returnfalse;inttarget=sum/2;...原创 2022-03-21 00:03:58 · 641 阅读 · 0 评论 -
c#不同的二叉搜索树
publicclassSolution{publicintNumTrees(intn){int[]dp=newint[n+1];dp[0]=1;for(inti=1;i<=n;i++){for(intj=1;j<=i;j++)dp[i]+=dp[j-1]*dp[i-j];}returndp[n];...原创 2022-03-19 00:03:56 · 625 阅读 · 0 评论 -
整数拆分(动态规划)c#
public class Solution {public int IntegerBreak(int n) {int[] dp=new int[n+1];//dp[2]是指数组的初始化,因为dp[1]拆分的结果也是1,所以直接用dp[2]dp[2]=1;for(int i=3;i<=n;i++){for(int j=1;j<i-1;j++)dp[i]=Math.Max(Math.Max(j*(i-j),j*dp[i-j]),dp[i]);//...原创 2022-03-18 09:40:44 · 685 阅读 · 0 评论 -
不同路径问题(有障碍物)c#
第一种方法:public class Solution { public int UniquePathsWithObstacles(int[][] obstacleGrid) { int m=obstacleGrid.Length; int n=obstacleGrid[0].Length; int[] dp=new int[n]; //判定dp数组的初始化状态 dp[0]=obstacleGrid[0][0]==0?1:0; ...原创 2022-03-17 09:54:13 · 599 阅读 · 0 评论 -
c#解决不同路径问题
publicclassSolution{publicintUniquePaths(intm,intn){vardp=newint[m,n];for(inti=0;i<m;i++)dp[i,0]=1;for(intj=0;j<n;j++)dp[0,j]=1;for(inti=1;i<m;i++){for(intj=1;j<n;...原创 2022-03-16 00:00:16 · 703 阅读 · 0 评论 -
简单算法(动态规划)消耗体力的爬楼梯(c#)
public class Solution {public int MinCostClimbingStairs(int[] cost) {int n=cost.Length;int[] dp=new int[n+1];dp[0]=cost[0];dp[1]=cost[1];for(int i=2;i<n;i++){dp[i]= Math.Min(dp[i-1],dp[i-2])+cost[i];}return Math.Min(dp[n-1],dp[n-2]);原创 2022-03-15 00:09:06 · 127 阅读 · 0 评论