- 博客(9)
- 收藏
- 关注
原创 C#代码随想录算法训练营第十三天 | LeetCode239 LeetCode347
定义了一个单调链表,保证链表的头为最大值,每次进链表的时候,会去判断当前进入的值是否为链表中的最大值,如果是则将前面的元素全部移除。主要思想:用的优先级队列。
2024-05-20 23:09:08
420
原创 C#代码随想录算法训练营第十一天 | LeetCode20 LeetCode1047 LeetCode150
利用栈的先进后出思想,检测到左括号让右括号入栈 ,如果都不满足检测当前栈的数量如果不是0则去判断当前字符是否与栈的头部相等,如果不等则为false,如果都满足则进行出栈。
2024-05-19 15:56:40
170
1
原创 C#代码随想录算法训练营第十天 | LeetCode232 LeetCode225
【代码】C#代码随想录算法训练营第十天 | LeetCode232 LeetCode225。
2024-05-19 15:55:47
201
1
原创 C#代码随想录算法训练营第七天 | LeetCode454 LeetCode383 赎金信
主要思想:使用字典,将前两个数组所有相加的Value出现的次数统计,再遍历后两个数组进行比较,比起暴力解法,时间复杂度从O(n四次方)降到O(n二次方)
2024-05-15 23:01:17
316
原创 C#代码随想录算法训练营第六天| LeetCode242 LeetCode349 LeetCode1
IntersectWith:修改当前的 HashSet 对象,以使其仅包含该对象和指定集合中存在的元素。这种操作是破坏性的,因为该方法会用一个 “新集合” 覆盖 “原始” HashSet 对象的内容。主要思想:一看下面就懂。
2024-05-13 21:49:05
167
原创 C#代码随想录算法训练营第四天 | LeetCode24 LeetCode19 面试题 02.07. 链表相交
主要思想:使用一个虚拟头结点,头结点指向head。循环判断下一个和下下一个是否为空,因为如果不为空要进行交换。记录temp 1 2,是为了交换,记录 temp3是为了让1后指向3。最后值为 -2 5 3,将slow的next值指向next.next值删除。主要思想:先算出两个链表的长度差值,长的后移动差值位,然后比较。主要思想:双指针,fast指针要距离slow指针n个距离。head = [1,2,3,4,5],在循环内 三个值为。
2024-05-12 23:12:41
414
1
原创 C#代码随想录算法训练营第三天 | LeetCode203 LeetCode707 LeetCode206
主要思想:保存两个节点,一个指向头,一个指向null,两个一起向后移动,需要将currentNode的下个节点 赋值为preNode的节点,同时preNode的节点要为当前current的节点实现翻转。递归写法,思想差不多,不过是把while拆成递归。测试用例有点难ac,看的代码随想录写的。
2024-05-10 22:59:05
160
原创 C#代码随想录算法训练营第二天 | LeetCode977 LeetCode59
主要思想:主要是四个边界,先算出需要循环几次。最后如果n为基数需要为中间值赋值。主要思想:双左右指针比较。
2024-05-09 22:18:43
215
原创 C#代码随想录算法训练营第一天 | LeetCode704 二分查找、LeetCode27 移除元素
考虑到右开所以不会取到该值所以是right=mid,考虑到左闭会取到该值,前面已经判断过了所以是left=mid+1。主要思想:利用双左右指针,从左开始如果有等于目标的值,就去判断右指针位置如果也等于目标值右指针-1,不等于就交换。二分有两种写法一种是左闭右开,一种是左闭右闭。选择了左闭右开的写法,所以是left
2024-05-08 19:59:03
175
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人