
数据结构和算法和那些年刷过的题
文章平均质量分 64
数据结构和算法
Willow
菜鸡一枚 来互啄呀
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BM14 链表的奇偶重排
牛客刷题记录 BM14 链表的奇偶重排原创 2022-07-19 21:10:00 · 415 阅读 · 0 评论 -
牛妹的礼物
牛妹的礼物解题记录题目描述众所周知,牛妹有很多很多粉丝,粉丝送了很多很多礼物给牛妹,牛妹的礼物摆满了地板。地板是N\times MN×M的格子,每个格子有且只有一个礼物,牛妹已知每个礼物的体积。地板的坐标是左上角(1,1) 右下角(N, M)。牛妹只想要从屋子左上角走到右下角,每次走一步,每步只能向下走一步或者向右走一步或者向右下走一步每次走过一个格子,拿起(并且必须拿上)这个格子上的礼物。牛妹想知道,她能走到最后拿起的所有礼物体积最小和是多少?示例1输入复制[[1,2,3],[2,原创 2020-06-06 23:15:53 · 239 阅读 · 0 评论 -
NC93 设计LRU缓存结构
牛客NC93 设计LRU缓存结构算法原创 2022-07-18 22:42:10 · 339 阅读 · 0 评论 -
SQL161 近一个月发布的视频中热度最高的top3视频
SQL161 近一个月发布的视频中热度最高的top3视频原创 2022-10-07 20:54:34 · 796 阅读 · 0 评论 -
160. 相交链表
题目:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。A: a1 → a2↘c1 → c2 → c3↗B: b1 → b2 → b3图示两个链表在节点 c1 开始相交。题目来自LeetCode第160题,和“剑指 Offer 52. 两个链表的第一个公共节点”也是同一个题目。思路:两个链表交叉点后的节点都是一样的,包括值和next的引用。遍历两链表长度,长的先走相差的步数,再一原创 2021-08-15 12:44:37 · 192 阅读 · 0 评论 -
88. 合并两个有序数组
题目:给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]示例 2:输入:nums1 = [1],原创 2021-03-31 23:17:42 · 109 阅读 · 0 评论 -
整数计算器
计算器题目描述请写一个整数计算器,支持加减乘三种运算和括号。输入描述:一个待计算的表达式,包含0到9、+、-、*等符号。输出描述:输入计算结果示例1输入1+1输出2示例2输入3+234-1输出26示例3输入(2*(3-4))*5输出-10思路:1.转逆波兰表达式、再计算逆波兰表达式值2.参考别人代码的思路:几点原则:1.加、减(转换为负数相加)不需要立刻计算,优先级低,可以放入堆栈最后遍历累加即可;2.乘除要立刻计算,将计算结果放入栈内,符号左边的数值应原创 2020-10-21 20:48:22 · 1213 阅读 · 1 评论 -
容器盛水问题(同lc42 接雨水)
题目给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。示例1输入:[3,1,2,5,2,4]返回值:5示例2输入:[4,5,1,3,2]返回值:2思路:左右高中间低时就会盛水。假如中间没有起起伏伏,都比左右两边矮,比较左右两边,取最小值,中间比最小值低的,就可以盛雨水,盛的数量就是min-这个值,可以从左向右遍历也可以从右向左遍历。假如中间遇到比min高的,那么就以这个为新的左/右边,继续重复上面过程,直到左右两边相遇。先从左向原创 2021-07-02 00:09:40 · 339 阅读 · 0 评论 -
10.03. 搜索旋转数组
题目:搜索旋转数组。给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详。请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。示例1:输入: arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], target = 5输出: 8(元素5在该数组中的索引)示例2:输入:arr = [15, 16, 19, 20, 25, 1, 3, 4, 5, 7, 10, 14], targe原创 2021-05-27 23:39:12 · 349 阅读 · 1 评论 -
删除有序链表重复节点
lc中83题,牛客nc25题题目描述83. 删除排序链表中的重复元素存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。例如:给出的链表为1→1→2,返回1→2.给出的链表为1→1→2→3→3,返回1→2→3.思路只需要判断当前节点和下一个节点值是否相同,如果相同那么当前节点的next就改为下一个节点的next。 public ListNode deleteDuplicates (ListNod原创 2021-08-29 23:20:56 · 1063 阅读 · 1 评论 -
数据结构--查找算法Java
顺序表查找(线性查找)时间复杂度:O(n)遍历有序表查找a.折半查找(二分法)时间复杂度:O(logn) public int search(int[] nums, int target) { if(nums.length == 0) { return 0; } int low = 0; int high = nums.length - 1; int mid = 0;原创 2021-04-07 23:50:26 · 355 阅读 · 0 评论 -
数据结构--排序算法 Java
排序算法–冒泡排序思想:两两比较相邻记录的关键字,若反序则交换,直到没有反序的记录为止。a.最简单排序:public int[] BubbleSort0(int[] arr) { for(int i = 0;i < arr.length;i++){ for(int j=i+1;j < arr.length ;j++){ if(arr[i]>arr[j]){ int temp原创 2021-01-30 20:06:43 · 107 阅读 · 0 评论