随笔分类 -  算法

摘要:public bool CanJump(int[] nums) { int rightMost=0; int n=nums.Length; for(int i=0;i<n;i++) { if(i<=rightMost) { rightMost = Math.Max(rightMost,i+nums[ 阅读全文
posted @ 2024-06-04 01:37 yinghualeihenmei 阅读(12) 评论(0) 推荐(0) 编辑
摘要:public static int MaxProfit(int[] prices) { int priceSize = prices.Length; int [,] dp=new int[priceSize,2];//同一天有两种状态, [i,0]为第i天没有股票的利润,[i,1]为i天持有股票的利 阅读全文
posted @ 2024-06-02 22:49 yinghualeihenmei 阅读(11) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/changyuanchn/article/details/51476281 引言据说有人归纳了计算机的五大常用算法,它们是贪婪算法,动态规划算法,分治算法,回溯算法以及分支限界算法。虽然不知道为何要将这五个算法归为最常用的算法,但是毫无疑问,这五 阅读全文
posted @ 2024-05-14 16:54 yinghualeihenmei 阅读(111) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/u013309870/article/details/75193592 http://t.csdnimg.cn/GgRFt 动态规划算法的核心 理解一个算法就要理解一个算法的核心,动态规划算法的核心是下面的一个小故事。 A * "1+1+1+1+ 阅读全文
posted @ 2024-05-14 13:36 yinghualeihenmei 阅读(30) 评论(0) 推荐(0) 编辑
摘要:public void Rotate(int[] nums, int k) { int n=nums.Length; int[] newNums=new int[n]; for(int i=0;i<n;i++) { newNums[(i + k) % n] = nums[i]; } for (int 阅读全文
posted @ 2024-05-13 01:00 yinghualeihenmei 阅读(6) 评论(0) 推荐(0) 编辑
摘要:public int MajorityElement(int[] nums) { Dictionary<int, int> dic = new Dictionary<int ,int>(); foreach (int num in nums) { if(!dic.ContainsKey(num)) 阅读全文
posted @ 2024-05-08 23:08 yinghualeihenmei 阅读(6) 评论(0) 推荐(0) 编辑
摘要:非严格递增排列 的数组 nums,意思是有序递增的,但是有相同的元素 我写的: public int RemoveDuplicates(int[] nums) { int length=nums.Length; int low=0; for(int i=0;i<length;i++) { int n 阅读全文
posted @ 2024-05-05 18:37 yinghualeihenmei 阅读(9) 评论(0) 推荐(0) 编辑
摘要:数组移除数据,需要循环覆盖的方法。 可以快慢双指针。循环一遍。 public int RemoveElement(int[] nums, int val) { int n=nums.Length; int low=0; for(int i=0;i<n;i++) { if(nums[i]!=val) 阅读全文
posted @ 2024-05-04 21:36 yinghualeihenmei 阅读(18) 评论(0) 推荐(0) 编辑
摘要:我写的: public int VowelStrings(string[] words, int left, int right) { string s="aeiou"; int k=0; for(int i=left;i<=right;i++) { int x=0,y=0; string word 阅读全文
posted @ 2024-05-02 13:48 yinghualeihenmei 阅读(7) 评论(0) 推荐(0) 编辑
摘要:转置让我写成了对角线交换。。。 还是要记录下 对角线交换代码: public int[][] Transpose(int[][] matrix) { int temp=0; int m = matrix.Length, n = matrix[0].Length; for(int i=0;i<m;i+ 阅读全文
posted @ 2024-05-02 13:13 yinghualeihenmei 阅读(18) 评论(0) 推荐(0) 编辑
摘要:给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,...,xn,y1,y2,...,yn] 的格式排列。 请你将数组按 [x1,y1,x2,y2,...,xn,yn] 格式重新排列,返回重排后的数组。 我写的: public int[] Shuffle(int[] nums, in 阅读全文
posted @ 2024-04-30 14:38 yinghualeihenmei 阅读(8) 评论(0) 推荐(0) 编辑
摘要:写了老半天,还是电脑写的更简单,原来split还可以这么用(可以为数组),学到了。记录下 //我写的 public static string RetrieveSpanTimeByTime(string firstTime, string endTime) { int firstDayIndex = 阅读全文
posted @ 2024-04-26 16:49 yinghualeihenmei 阅读(12) 评论(0) 推荐(0) 编辑
摘要:学到了一种,将时常全都转换为分钟,利用分钟进行相加减,再将分钟转换为时长 其中,1天时长是1440分钟 阅读全文
posted @ 2024-04-24 10:10 yinghualeihenmei 阅读(1) 评论(0) 推荐(0) 编辑
摘要:public bool IsUgly(int n) { if(n<=0) { return false; } int [] nums=[2,3,5]; foreach( int i in nums) { while(n%i==0) { n/=i; } } // if(n==1) // { // re 阅读全文
posted @ 2024-04-19 23:57 yinghualeihenmei 阅读(6) 评论(0) 推荐(0) 编辑
摘要:个数 n 是 222 的幂,当且仅当 nnn 是正整数,并且 nnn 的二进制表示中仅包含 111 个 111。 因此我们可以考虑使用位运算,将 n 的二进制表示中最低位的那个 1 提取出来,再判断剩余的数值是否为 000 即可。下面介绍两种常见的与「二进制表示中最低位」相关的位运算技巧。 第一个技 阅读全文
posted @ 2024-04-19 00:49 yinghualeihenmei 阅读(14) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/lsgo_myp/article/details/91435589 Prim算法 加点法 1.算法简单描述 1).输入:一个加权连通图,其中顶点集合为V,边集合为E; 2).初始化:Vnew = {x},其中x为集合V中的任一节点(起始点),En 阅读全文
posted @ 2024-03-28 00:49 yinghualeihenmei 阅读(8) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/xiaoxi_hahaha/article/details/110257368 https://blog.csdn.net/qq_25954259/article/details/78289335/ 原文链接:https://blog.csdn. 阅读全文
posted @ 2024-03-20 23:24 yinghualeihenmei 阅读(40) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/MfuuJava/article/details/132933517 拓扑排序是一种在有向无环图(DAG)中对节点进行排序的算法。 在 C# 中,我们可以使用深度优先搜索(DFS)和拓扑排序算法来解决这个问题。 深度优先代码: using Sys 阅读全文
posted @ 2024-03-20 21:56 yinghualeihenmei 阅读(86) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/weixin_41883890/article/details/125517599 本文介绍C#实现图的邻接矩阵和邻接表结构。逻辑结构分为两部分:V和E集合,其中,V是顶点,E是边。因此,用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点 阅读全文
posted @ 2024-03-14 23:48 yinghualeihenmei 阅读(102) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://blog.csdn.net/weixin_38754799/article/details/120681819 我们来看一下 函数sum(n=5)的递归执行过程,如下: 计算sum(5)时,先sum(5)入栈,然后原问题sum(5)拆分为子问题sum(4),再入栈,直到终止 阅读全文
posted @ 2024-03-14 22:53 yinghualeihenmei 阅读(52) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示