算法训练
zhenwei zhao
这个作者很懒,什么都没留下…
展开
-
JavaScript数据结构单链表的封装
JavaScript数据结构单链表的封装 // 封装链表 function LiskedList(){ // 封装链表 function Nodes(data){ this.data = data; this.next = null; } // 属性 this.header = null; this.length = 0; // append(element) 向列表尾部添加一个新的项 LiskedList.p原创 2022-03-05 15:22:17 · 691 阅读 · 0 评论 -
javascript数据结构对于栈的封装
javascript数据结构对于栈的封装 function LIFO(){ // 栈的相关属性 this.items = [] //栈的相关操作 // 1.将元素压入到栈 LIFO.prototype.push = function(element){ this.items.push(element) } // 2.从栈中取出元素 LIFO.prototype.pop = function(){ return t原创 2022-03-05 15:16:19 · 388 阅读 · 0 评论 -
归并排序__逆序对的数量
例题 给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。 输入格式 第一行包含整数 n,表示数列的长度。 第二行包含 n 个整数,表示整个数列。 输出格式 输出一个整数,表示逆序对的个数。 数据范围 1≤n≤100000, 数列中的元素的取值范围 [1,109]。 输入样例: 6 2 3 4 5 6 1 输出样例: 5 代码 import java.u原创 2022-01-28 20:24:51 · 70 阅读 · 0 评论 -
归并排序模板
例题 给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整个数列。 输出格式 输出共一行,包含 n 个整数,表示排好序的数列。 数据范围 1≤n≤100000 输入样例: 5 3 1 2 4 5 输出样例: 1 2 3 4 5 代码 import java.util.Scanner; /** * 归并排序 */ publi原创 2022-01-28 20:22:02 · 448 阅读 · 0 评论 -
快速排序- 第k个数
列题 给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k 个数。 输入格式 第一行包含两个整数 n 和 k。 第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整数数列。 输出格式 输出一个整数,表示数列的第 k 小数。 数据范围 1≤n≤100000, 1≤k≤n 输入样例: 5 3 2 4 1 5 3 输出样例: 3 代码 在快速排序基础上进行改进,判断第K个数的位置,再选择对左或者右进行递归 import java.util.Scann原创 2022-01-28 20:17:11 · 918 阅读 · 0 评论 -
快速排序模板(java)
例题 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整个数列。 输出格式 输出共一行,包含 n 个整数,表示排好序的数列。 数据范围 1≤n≤100000 输入样例: 5 3 1 2 4 5 输出样例: 1 2 3 4 5 代码 import java.util.Scanner; /** * 快速排序 */ public cl原创 2022-01-28 20:10:41 · 259 阅读 · 0 评论 -
数据结构二分法-给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录题目题解解析 题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums = [1,3,5,6], target = 5 输出: 2 示例 2: 输入: nums = [1,3,5,6], target = 2 输出: 1 示例 3: 输入: nums = [1,3,5,6], tar原创 2021-09-21 23:02:14 · 937 阅读 · 0 评论 -
数据结构二分法查找-你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录题目题解解析 题目 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找原创 2021-09-21 22:09:11 · 344 阅读 · 0 评论 -
数据结构二分查找-给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录题目题解解析 题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 示例 2: 输入: nums = [-1,0,3,5,9,12], target = 2原创 2021-09-21 20:16:06 · 1857 阅读 · 0 评论