Live2d

随笔分类 -  算法设计学习

摘要:题目描述: 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] 思路: 回溯算法,遇到合适的放入数组,遇到不合适的就继续 result = [] 阅读全文
posted @ 2021-04-08 11:54 IkNyEa
摘要:题目描述:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。解集不能包含重复的组合。 思路: 阅读全文
posted @ 2021-03-31 22:37 IkNyEa
摘要:该文是对选择排序算法的一些总结和分析,具体代码和注释如下: /**算法思想:选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排 阅读全文
posted @ 2021-03-24 17:21 IkNyEa 阅读(72) 评论(0) 推荐(0)
摘要:该文是对插入排序算法的一些总结和学习,具体代码和注释如下: Insertion.java/*插入排序特点:运行时间和输入无关,数据移动是最少的(交换次数和数组大小是线性关系)。*/Below is the syntax highlighted version of Insertion.java fr 阅读全文
posted @ 2021-03-24 17:20 IkNyEa 阅读(72) 评论(0) 推荐(0)
摘要:题目描述如下: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V 阅读全文
posted @ 2021-03-17 21:02 IkNyEa 阅读(195) 评论(0) 推荐(0)
摘要:引言:我们在设计程序时,一定会关注到算法和数据结构,因为数据表示的本质是数据结构设计,数据处理的本质是算法设计。本篇文章是关于一些常见的数据结构对应适用算法的情况。 1.常见数据结构 1.1线性表: 线性表按存储方式可分为顺序表和链表。线性表的基本运算是指对线性表的操作,常见的包括:求长度、置空表、 阅读全文
posted @ 2021-03-16 21:22 IkNyEa 阅读(196) 评论(0) 推荐(0)
摘要:算法描述 基本思想:合并排序法是将两个或以上的有序表合成一个新的有序表,把待排序数组分为各个子序列,当把每一个子序列都进行排序后再把子序列合并成一个有序整体。 自上而下的递归(设有n个元素): 将序列每相邻两个数字进行归并操作,形成 floor(n/2)个序列,排序后每个序列包含两个元素; 将上述序 阅读全文
posted @ 2021-03-10 21:38 IkNyEa 阅读(97) 评论(0) 推荐(0)