数据结构
捻玖
努力努力再努力
展开
-
愤怒的小鸟
Kiana 最近沉迷于一款神奇的游戏无法自拔。简单来说,这款游戏是在一个平面上进行的。有一架弹弓位于 (0,0) 处,每次 Kiana 可以用它向第一象限发射一只红色的小鸟, 小鸟们的飞行轨迹均为形如 y=ax2+bx 的曲线,其中 a,b 是 Kiana 指定的参数,且必须满足 a原创 2022-10-05 17:08:22 · 765 阅读 · 0 评论 -
1006 换个格式输出整数
让我们用字母B来表示“百”、字母S表示“十”,用12...n来表示不为零的个位数字n(原创 2022-10-07 23:20:14 · 82 阅读 · 0 评论 -
力扣175. 组合两个表
编写一个SQL查询来报告 Person 表中每个人的姓、名、城市和州。地址表中没有 personId = 1 的地址,所以它们的城市和州返回 null。该表的每一行都包含一个 ID = PersonId 的人的城市和州的信息。addressId = 1 包含了 personId = 2 的地址信息。该表包含一些人的 ID 和他们的姓和名的信息。addressId 是该表的主键列。personId 是该表的主键列。以 任意顺序 返回结果表。查询结果格式如下所示。表: Address。原创 2022-11-12 09:44:01 · 75 阅读 · 0 评论 -
力扣176. 第二高的薪水
编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水。如果不存在第二高的薪水,查询应该返回 null。DISTINCT 用于筛选唯一值,可以作用于单个列或者多个列。用于筛选唯一值,可以作用于单个列或者多个列。表的每一行包含员工的工资信息。id 是这个表的主键。查询结果如下例所示。原创 2022-11-12 10:25:06 · 164 阅读 · 0 评论 -
统计数字问题
一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6页用数字6表示,而不是06或006等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2,…,9。原创 2023-02-21 17:51:55 · 67 阅读 · 0 评论 -
数据结构(链表题)
尾插法 头插法 输出 输出列表的长度 执行位置插入,第一个是要插入的数,第二个是位置 指定位置删除 找到链表的中间值,只能遍历一次 判断是否成环 找到成环的位置 在原链表上进行翻转 截取出单链表的后k个节点public class LInkList { Node head = null;//定义头节点 //尾插法 public void insert(int val){ //创建节点 Node node = new Node(v原创 2022-03-12 23:12:01 · 961 阅读 · 0 评论 -
java数字金字塔
import java.util.*;public class shuzi { public static void main (String[] args) { int i,j,k,n; Scanner input = new Scanner(System.in); n = input.nextInt(); for ( i=1 ; i<=n ; i++ ){ for ( j=0 ; j<n-i .原创 2022-03-15 23:42:06 · 1256 阅读 · 0 评论 -
数据结构(研究在内存当中如何存储数据)
1.什么是数据结构(研究在内存当中如何存储数据)数据在计算机中是如何存储的?存储的介质:内存条,磁盘固态硬盘(比较快)拥有访问次数限制,而磁盘没有磁盘存储原理图内存条:cpu计算一个数据大约在0.2ns左右,机械臂移动是ms级。磁盘寻址3-5ms。所以就有了内存条。原理:“电容”。大约在20ns左右----------------------------------------------------------------------------------原创 2022-03-09 23:07:38 · 334 阅读 · 0 评论 -
用两个栈实现一个一个队列
package stack;import java.util.Stack;public class TwoStacktoQueue { Stack<Integer> stack1 = new Stack<>(); Stack<Integer> stack2 = new Stack<>(); public void push(Integer data){ stack1.push(data); } .原创 2022-03-18 23:03:28 · 169 阅读 · 0 评论 -
判断元素出栈的合法性
package stack;import java.util.Stack;public class StaticShun { public boolean hhh(int[] pushed,int[] poped){ Stack<Integer> stack = new Stack<>(); int i = 0; for (int num:pushed){ stack.push(num...原创 2022-03-18 23:05:52 · 201 阅读 · 0 评论 -
力扣693. 交替位二进制数
给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同示例 1:输入:n = 5输出:true解释:5 的二进制表示是:101示例 2:输入:n = 7输出:false解释:7 的二进制表示是:111.示例 3:输入:n = 11输出:false解释:11 的二进制表示是:1011.charAt方法charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。语法pub原创 2022-03-28 18:08:26 · 53 阅读 · 0 评论 -
java求最大公约数最小公倍数
package abc;public class digui { public static void main(String[] args){ gongbeishu(6,8); gongyueshu(24,16,12); } public static void gongyueshu(int a,int b,int c){ int min = a < b ?a : b; min = min < c .原创 2022-03-16 11:10:04 · 330 阅读 · 0 评论 -
用两个队列实现一个栈
package stack;import java.util.LinkedList;import java.util.Queue;public class QueueToStack { Queue<Integer> queue1 = new LinkedList<>(); Queue<Integer> queue2 = new LinkedList<>(); //数据放入 public void push(Integ.原创 2022-03-18 23:04:48 · 175 阅读 · 0 评论 -
数据结构--链表
数组地址是连续的,且大小不可变链表地址不连续,方便删除。应用:内存条主要用数组存储,他快。磁盘删除应用比较多,链表方便。对链表进行学习栈中先要main方法入栈new:在堆内存开辟一个内存空间,创建对象类是创建对象的模板对象名只想我们的地址类型 对象名 = new 类型();类型控制着我们对地址的引用;LInklist类package Shujujiegou;public class LInkList { Node head = n原创 2022-03-11 23:25:42 · 611 阅读 · 0 评论 -
实现一个栈,要求出栈,入栈,返回最小值的时间复杂度为O(1);
package stack;import java.util.Stack;//实现一个栈,要求出栈,入栈,返回最小值的时间复杂度为O(1);public class StackMin { static Stack<Integer> num = new Stack<>(); static Stack<Integer> min = new Stack<>(); //入栈 public void push(Integer d.原创 2022-03-18 23:02:25 · 309 阅读 · 0 评论 -
josephus约瑟夫环问题
import java.util.Scanner;//约瑟夫环public class josephus { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt();//一共多少人 int s = scan.nextInt();//开始位置 int d = scan.nextInt..原创 2022-03-15 23:40:49 · 79 阅读 · 0 评论 -
java螺旋方阵
有具体实例package abc;import java.util.Arrays;public class luoxuanfangzhen { public static void main(String[] args){ int[][] a = {{1,2,3,4},{12,13,14,5},{11,16,15,6},{10,9,8,7}}; luoxuan(a); } public static void luoxuan(int[][原创 2022-03-16 11:09:05 · 333 阅读 · 0 评论 -
树的遍历与删除
二叉排序树:要求,一个节点的左子树值一定小于等于该节点,右子树的值一定大于该节点构建有序二叉树:递归:方法调用其本身:循环递归表达式 递归出口package tree;import java.util.LinkedList;public class BinaryTree { // 新建代表整棵树的节点 TreeNode root; public void insert(Integer value){ // 新建一个节点 T原创 2022-03-31 17:35:17 · 1020 阅读 · 0 评论 -
有序二叉树,平衡二叉树,二三四树,红黑树
有序二叉树:平衡二叉树具有以下特点:1)它是一颗空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两颗子树都是一颗平衡二叉树。2)平衡因子: 左子树的高度 - 右子树的高度我们将平衡因子的绝对值小于1的的有序二叉树称为平衡二叉树旋转:LL,RRLLRRLRRL造成不平衡的节点最后插入红黑树红黑树:介于有序二叉树和平衡二叉树之间的树,最优二叉树二三四树红黑树红黑树中的节点不是红色就是黑色 红黑树中根节点一定是黑原创 2022-03-31 17:38:21 · 924 阅读 · 0 评论 -
八大排序之---归并排序
归并排序:合并有序数列归并排序步骤:1.将一个数组拆分成两份(从中间拆开)。定义最左侧指针为low,右侧为high,中间指针mid=(low+high)/22.然后通过递归的方法继续拆分3.将数组分成一个个的数,然后按顺序合并(以一半为例分)(以整个为例分)(分加合并)(动图演示)代码如下(代码注释可以参考)package com.qcby;import java.util.Arrays;public class gui { publ.原创 2022-02-10 21:32:51 · 301 阅读 · 0 评论 -
八大排序之---堆排序
堆排序:堆排序是利用堆这种数据结构而设立的一种排序算法学习堆排序的时候要先掌握以下规律1. N[i]的左节点:N[2i+1]2. N[i]的右节点:N[2i+2]3. N[i]的父节点:N[(i-1)/2)]堆排序基本思想:构建大顶堆,将顶堆元素与最后一个元素交换,然后再将剩下节点重新构建大顶堆,反复进行最后可得有序数列堆排序步骤举例1:构建大顶堆2.:首先,构建p指针指向数组最后一位数据。然后构建parent,lchild指针,lc...原创 2022-02-10 20:21:54 · 100 阅读 · 0 评论 -
八大排序之---基数排序
基数排序:将整数按位切割成不同的数字,然后按每个位数分别比较。具体步骤:1.先比较所有数的个位数大小,将个位数相同的书放在同一个桶里面,然后按顺序拿出摆放好(先进后出)2.按照十位数进行排序3.以此类推直至最大的数排完...原创 2022-02-10 20:59:56 · 419 阅读 · 0 评论 -
八大排序之---快速排序
快速排序作为八大排序的一种。下面用例子来讲一下。快速排序步骤:分为两大步一:第一次排序1:先把数组当中最左边的数当成基数。2:定义i和j指针3:向左移动j指针,找第一个小于基数5的数。向右移动i指针,找到比基数5大的数,然后交换4:当i与j两指针相遇后,将相遇处数值与基数交换。5:经过第一次排序后,我们会发现基数位置的左边的数都比基准数小,右边都比基准数大二:采用递归的方法1:以相遇处为基准,将数组分开原创 2022-02-10 17:52:06 · 743 阅读 · 0 评论 -
数据结构小记
数据结构数组,链表,栈,队列,字符串,树,图数据结构分类{地址连续存储 {地址非连续性存储{数据结构:数据在内存中如何让存储(数组,链表){算法:解决问题的方法单向链表只能指向它的下一位数组地址连续,链表不连续。/////java是强数据类型语言/////js弱类型语言int 1(符号) 31float 1(符号) 8(小数) 23================================...原创 2021-12-12 18:03:24 · 492 阅读 · 0 评论