
数据结构与算法
学习数据结构与算法
wydxry
红叶经霜而赤,腊梅沐雪而馨!
展开
-
LeetCode 912. 排序数组 【快速排序】
题目 给你一个整数数组 nums,请你将该数组升序排列。 示例 1: 输入:nums = [5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:nums = [5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 提示: 1 <= nums.length <= 50000 -50000 <= nums[i] <= 50000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/sort-an-array 著作权归领扣原创 2021-08-10 23:23:39 · 379 阅读 · 0 评论 -
785. 快速排序 【快速排序模板】
题目 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整个数列。 输出格式 输出共一行,包含 n 个整数,表示排好序的数列。 数据范围 1≤n≤100000 输入样例: 5 3 1 2 4 5 输出样例: 1 2 3 4 5 题解 #include <iostream> using namespace std; const原创 2021-08-10 23:14:44 · 324 阅读 · 0 评论 -
数组模拟环形队列
循环队列 使用数组实现队列的顺序存储时会出现假溢出情况,使用循环队列可以解决这一问题。 初始时:front=rear; 队列头部改变:front=(front+1)%MaxSize; 队列尾部改变:rear=(rear+1)%MaxSize; 队列长度:(rear+MaxSize-front)%MaxSize; 出队入队时:指针都按照同一个方向进1; 队满条件:(rear+1)%MaxSize == front; 队空条件:front == rear; 队列中元素个数:(rear+MaxSize-front原创 2021-06-12 13:43:33 · 85 阅读 · 0 评论 -
模拟队列实现
Java源程序 import java.util.Scanner; public class ArrayQueueDemo { public static void main(String[] args) { // 创建一个队列 ArrayQueue queue = new ArrayQueue(3); char key = ' '; //接收用户输入 Scanner scanner = new Scanner(System.in);原创 2021-06-10 23:43:14 · 98 阅读 · 0 评论 -
稀疏数组与二维数组的转换
稀疏数组 Java代码 public class sparsearray { public static void main(String[] args) { // 创建原始二维数组 11*11 // 0表示没有棋子 1表示黑子 2表示白子 int chessArr1[][] = new int[11][11]; chessArr1[1][2] = 1; chessArr1[2][4] = 2; ches原创 2021-06-10 22:52:49 · 58 阅读 · 0 评论 -
LeetCode 67. 二进制求和【字符串】
题目 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 示例 1: 输入: a = “11”, b = “1” 输出: “100” 示例 2: 输入: a = “1010”, b = “1011” 输出: “10101” 提示: 每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。 1 <= a.length, b.length <= 10^4 字符串如果不是 “0” ,就都不含前导零。 来源:力扣(LeetCode) 链接:https://leet原创 2021-05-07 09:47:37 · 77 阅读 · 0 评论 -
LeetCode 35. 搜索插入位置【二分】
题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3,5,6], 2 输出: 1 示例 3: 输入: [1,3,5,6], 7 输出: 4 示例 4: 输入: [1,3,5,6], 0 输出: 0 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/search-in原创 2021-05-07 09:27:34 · 78 阅读 · 0 评论 -
LeetCode 1845. 座位预约管理系统【优先队列】
题目 请你设计一个管理 n 个座位预约的系统,座位编号从 1 到 n 。 请你实现 SeatManager 类: SeatManager(int n) 初始化一个 SeatManager 对象,它管理从 1 到 n 编号的 n 个座位。所有座位初始都是可预约的。 int reserve() 返回可以预约座位的 最小编号 ,此座位变为不可预约。 void unreserve(int seatNumber) 将给定编号 seatNumber 对应的座位变成可以预约。 示例 1: 输入: [“SeatManage原创 2021-05-06 09:39:55 · 438 阅读 · 0 评论 -
自定义动态数组和单向链表
设计动态数组 public class MySingleList { private Node first; // 只记第一个 private int total; // 结点总数 // 设计结点类型 class Node{ Object data; Node next; public Node(Object data, Node next){ super(); this.dat原创 2021-05-05 20:18:55 · 65 阅读 · 0 评论