随笔分类 - 数据结构与算法
摘要:原地交换两个整数值 一般的做法,我们要交换两个整数的值都要定义一个临时变量来存储,那有没有其他的方法可以交换变量的值呢? // 使用临时变量交换两个整型的值 void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } 我们知道,异
阅读全文
摘要:【数据结构与算法】不同路径 III:使用哈密尔顿路径算法实现 Java 不同路径 III https://leetcode-cn.com/problems/unique-paths-iii/ 解题思路 使用哈密尔顿路径的方法解决。 图的深度优先遍历,在遍历时通过left变量记录所有可走的方块有没有被
阅读全文
摘要:【数据结构与算法】狼、羊、菜和农夫过河:使用图的广度优先遍历实现 Java 农夫需要把狼、羊、菜和自己运到河对岸去,只有农夫能够划船,而且船比较小。除农夫之外每次只能运一种东西。还有一个棘手问题,就是如果没有农夫看着,羊会偷吃菜,狼会吃羊。请考虑一种方法,让农夫能够安全地安排这些东西和他自己过河。
阅读全文
摘要:打开转盘锁:使用图的广度优先遍历实现 Java https://leetcode-cn.com/problems/open-the-lock/ 解题思路 使用图的广度优先遍历思想来实现,字符串处理得比较慢,可以使用哈希方法转换成对应的整型。再者图比较大,搜索速度受限于广度,可以使用双向广度优先遍历优
阅读全文
摘要:爱吃香蕉的珂珂:二分法思想实现 java https://leetcode-cn.com/problems/koko-eating-bananas/solution/ai-chi-xiang-jiao-de-ke-ke-er-fen-fa-si-1sqa6/ 解题思路 此题目简单分析得知,吃香蕉的速
阅读全文
摘要:有序数组查找:二分查找算法实现 Java https://leetcode-cn.com/problems/binary-search/solution/you-xu-shu-zu-cha-zhao-er-fen-cha-zhao-s-ciza/ 解题思路 这是一个有序数组,里面的元素都是可比较的,
阅读全文
摘要:找出最小的k个数:三路快速排序算法思想实现 Java https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/solution/zui-xiao-de-kge-shu-san-lu-kuai-su-pai-x-5xro/ https://l
阅读全文
摘要:第K大的元素:三路快速排序算法思路 Java https://leetcode-cn.com/problems/kth-largest-element-in-an-array/solution/di-kda-de-yuan-su-san-lu-kuai-su-pai-xu-im68n/ 解题思路 这
阅读全文
摘要:颜色分类:三路快速排序算法思想实现 Java https://leetcode-cn.com/problems/sort-colors/ 解题思路 恰好三种元素,可以使用三路快速排序算法的思想,实现出来的时间复杂度是为O(n)级别的。首先是把元素区间分为3段,第一段存0,第二段存1,第三段存2。那么
阅读全文
摘要:逆数对问题:归并 Java https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/ 解题思路 有两种方法: 一个是使用暴力解法,直接搜索就行,但是这样会导致判题超时,用的时间比较多,是时间复杂度为O(n的平方)的算法。方法名:
阅读全文
摘要:反转链表:递归实现 Java https://leetcode-cn.com/problems/reverse-linked-list/solution/fan-zhuan-lian-biao-di-gui-shi-xian-by-x-qf5o/ 解题思路 反转链表,类似其他链表的处理过程,我们可以
阅读全文
摘要:反转链表:非递归实现 Java https://leetcode-cn.com/problems/reverse-linked-list/solution/fan-zhuan-lian-biao-fei-di-gui-shi-xian-ros64/ 解题思路 反转链表首先得有三个指针分别指向上一个,
阅读全文
摘要:Java链表与递归:移除链表元素 Java https://leetcode-cn.com/problems/remove-linked-list-elements/solution/javalian-biao-yu-di-gui-yi-chu-lian-biao-264p/ 解题思路 两种结题方式
阅读全文
摘要:栈的典型用法之一:括号匹配 Java https://leetcode-cn.com/problems/valid-parentheses/solution/zhan-de-dian-xing-yong-fa-zhi-yi-gua-hao-4av4/ 解题思路 栈是一种“先进后出”的数据结构。 本例
阅读全文
摘要:括号匹配:栈的底层原理实现 Java https://leetcode-cn.com/problems/valid-parentheses/solution/gua-hao-pi-pei-zhan-de-di-ceng-yuan-li-s-2ybl/ 解题思路 基于数组实现一个能自动扩容的数组(Ar
阅读全文