数据结构与算法
基础数据结构分享,欢迎大家来一起讨论
Vivi_static
晨夕、日月间 体会积累的力量。自己做第一块多米诺骨牌吧
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【算法】动态规划之零钱问题(java版详细代码)
leetcode地址https://leetcode-cn.com/problems/coin-change/题目理解【给定一个硬币面值数组,用最少的硬币个数,凑出一个固定值】最值问题,用自底向上,动态规划思路定义dp数组含义。dp[i]: 用dp[i] 个硬币,凑出i 元。dp[amount]:dp[amount] 是最少的硬币数,凑出amount元。定义状态转移:凑出i元,用的最少的dp[i], 取决于dp[i]和dp[i-当前面值硬币]+1 哪一个用的最少代码pu原创 2021-07-25 15:17:30 · 528 阅读 · 1 评论 -
【数据结构】反转链表的实现思路(java版详细代码)
基本思路!!注意链表结构!!想要找到一个元素,只能找到该元素的上一个元素.next获得反转链表的方法【头插法】:造新链表,把原链表依次 头插到新的链表【递归法】:定义递归方法,明确递归的定义,直接递归,再次强调!!!不要钻到递归里面一个一个尝试!!!【空间法】:直接放到别的数据结构中,如栈、数组【头插法】//ListNode 是定义的单链表结构//head 是传进来单链表的头部//假如是 1->2->3->4public ListNode reverse(L原创 2021-07-24 19:36:41 · 260 阅读 · 0 评论 -
【算法】排序算法之快速排序详解(快排Java版图解分析+详细代码)
搞了两个小时,终于自己手写出了快排代码,自测无毛病!!! /** * TODO 【题目】快速排序 * * @param arr 数组 * @param left 左指针 * @param right 右指针 */ public static void quickSort(int[] arr, int left, int right) { //指定左右两个指针 int left_tmp = l原创 2021-07-08 22:00:11 · 367 阅读 · 0 评论 -
【数据结构】单向链表(刷题之后总结)
数据结构小白之刷链表题总结(本文没有具体题目)无论碰到什么题目,都要从本质和方法下手。谨记链表特点和解决思路。【特点】1)结构 --节点(data,next )2) 每次只能从第一个开始找,找下一个只能先找到上一个3)方向是往后,不能往前4)形成新链表,需要前后都指向【解决思路】1)中间临时指针(可用1个或2个)2)快慢指针3)双链表4)递归5)换到stack、array结构中【注意】换的是节点还是数据本身。【相关重点题目】1)反转链表2)输出倒数第k个节点3)删除倒数第原创 2021-07-06 13:30:59 · 174 阅读 · 0 评论
分享