给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] …
标签:算法
零件分组【贪心算法习题python】
题目描述 某工厂生产一批棍状零件,每个零件都有一定的长度(Li)和重量(Wi)。现在为了加工需要,要将它们分成若干组,使每一组的零件都能排成一个长度和重量都不下降(若i<j,则Li<=Lj,Wi<=Wj…
二分查找(binary search)
概念: 1.二分查找又称折半查找,它是一种效率较高的查找方法。 2.二分查找要求:(1)必须采用顺序存储结构 (2).必须按关键字大小有序排列 3.原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)…
谈递归
递归真是个奇妙的思维方式。自打我大二学习递归以来,对一些简单的递归问题,我总是惊叹于递归描述问题和编写代码的简洁。但是总感觉没能融会贯通地理解递归,有时尝试用大脑去深入“递归”,层次较深时便常产生进不去,出不来的感觉。这…
排序算法类(待完善)
不多说废话了,直接贴上代码,个人把常用的排序算法写成了一个类,方便随时调用,部分内容待后续补充 //main.cpp #include "sort.h" int main() { Sort sort_clas…
Leetcode题解之数组(1)从排序数组中删除重复项
题目:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/21/ 描述:给定一个排序数组,你需要在原地删…
【js版】 剑指offer【7】用两个栈实现队列
题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 题目分析: 入队:将元素进栈A 出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,…
【js版】 剑指offer【8】斐波那契数列
题目描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39 题目分析: 我们都知道斐波那契可以用递归,但是递归重复计算的部分太多了(虽然可以通过),但是这道题…
阿哈算法--快速排序
所用材料:数组,temp基准数 left左哨兵 right右哨兵 应用场景:有时间限制的排序题 快速排序之所以比较快,是因为相比冒泡排序,每次交换是跳跃式的。 方法:每次排序的时候设置一个基准点,将小于等于基准点的数全部…
判断一个链表是否为回文结构
题目:判断一个链表是否为回文结构。 要求:时间复杂度为 O(n),空间时间复杂度为O(1)。 思路分析:回文链表的特点就是对称,那么要判断是否回文,就可以用两个指针指向对称的节点,看它们的数据是否一样。由于是单向链表,不…
pat甲级1013 参考柳神思路
1013 Battle Over Cities (25 分) It is vitally important to have all the cities connected by highways in a war. …
判断二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 算法思想 最后一个节点为根结点,可将数组分成两部分,左边部分为左树,右边部分为右…