
数据结构与算法
文章平均质量分 65
基础算法题、LeetCode算法题、算法思路学习笔记
1900's 88 keys
陆上的人喜欢寻根究底,虚度很多的光阴。
冬天忧虑夏天的迟来,夏天担心冬天的将至。
不停到处去追求一个遥不可及、四季如夏的地方——我并不羡慕。
展开
-
LeetCode算法题 - 376. 摆动序列-贪心解法(c语言)
376. 摆动序列难度:中等题目连接:https://leetcode-cn.com/problems/wiggle-subsequence/如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。相反,[1, 4, 7, 2, 5] 和 [1, 7, 4,原创 2021-12-02 22:42:38 · 373 阅读 · 0 评论 -
LeetCode算法题 - 面试题 02.07. 链表相交(c语言)
面试题 02.07. 链表相交难度:简单题目连接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists-lcci/给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。示例 1:输入:intersectVal原创 2021-11-28 23:49:54 · 137 阅读 · 1 评论 -
LeetCode算法题 - 24. 两两交换链表中的节点(c语言)
24. 两两交换链表中的节点题目连接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/难度:中等给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]提示:链表中节点的数目在范围 [0,原创 2021-11-27 23:20:58 · 836 阅读 · 0 评论 -
LeetCode算法题 - 20. 有效的括号(栈实现c语言)
20. 有效的括号题目连接:https://leetcode-cn.com/problems/valid-parentheses/难度:简单给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例原创 2021-11-25 23:25:02 · 232 阅读 · 3 评论 -
分治思想及例题
目录主旨思想例题二分法查找思路非递归写法递归写法快速排序算法基本思想代码时间和空间复杂度分析归并算法基本思想代码主旨思想分治思想主旨就是“分而治之”,大概就是指将一个规模较大的问题分割成规模较小的同类问题,然后再将这些小的子问题,逐个解决,最终大问题也就解决掉了。通常分治和递归是一起用的。例题二分法查找二分法查找算法是一种提现分治思想的算法。 力扣题目链接:704. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的原创 2021-11-22 21:49:47 · 1154 阅读 · 1 评论 -
LeetCode算法题 - 46. 全排列(回溯算法实现)
目录46. 全排列思路递归出口Used标记数组深度搜索代码完整代码46. 全排列题目连接:https://leetcode-cn.com/problems/permutations/难度:中等给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0原创 2021-11-12 23:44:11 · 267 阅读 · 0 评论