/*数据结构单向链表基本操作
节点类
*/
import java.util.Iterator;
import java.util.function.Consumer;
public class shujujiegou implements Iterable<Integer> {
1.1.1. 完全平方数(PerfectSquare)
判断正整数y是否是完全平方数。如果能找到正整数x,使得x*x==y,则y是平方数。
1. 思路
条件
处理
x*x>y
丢弃右半部分
x*x==y
y是完全平方数
x*x<y
丢弃左半部分
x的取值
一.链表带哨兵
import java.util.Iterator;
import java.util.function.Consumer;
//带哨兵
public class shuju02 implements Iterable<Integer> {//整体
privat
QOJ 6504. CCPC Final 2022 D Flower's Land 2题解
题意简述
给你一个只含 (0,1,2) 的序列,相邻两个相同的数字可以直接消掉。
询问包含两种
区间所有数 (+1) 并对 (3) 取模。
求一段区间能否用上述消除方式消完。
样例输入
8 9
012
递归
递归小题练习
public static int f(int n){
if(n==1){
return 1;
}
return n*f(n-1);
}
public static void main(
题目
字符串解码,给一个字符串s,返回解码后的字符串。字符串编码规则为k[str]表示括号内部str字符串正好重复k次,k保证为整数,并且输入的字符串肯定符合这种编码规则不会有额外的空格。
注意事项:
注意括号可能发生嵌套,例如输入字符串为3[a2[c]]应该返回accaccacc
1 <=
并查集
导论
并查集是一种数据结构,主要用于处理一些不相交集合的合并问题。一般应用在连通图、最小生成树、Kruskal算法、最近公共祖先(LCA)等算法中。
举例
用帮派例子理解并查集:在n个人中,分成了不同的帮派,每个帮派的人都互为朋友,朋友的朋友是朋友,例如1号和2号是朋友,1号和3号也
线性表的定义和操作
线性表的定义
线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表示为 L = (a1,a2,...ai,ai+1,...an)
几个概念:
相同是指每个数据元素所占
感觉F又双叒叕写复杂了
A - Order Something Else (abc310 A)
题目大意
点杯咖啡,要(p)元,但可以用一个优惠券,使得咖啡只要 (q)元,但你需要额外购买(n)个商品中(价格为(a_i))的一个。
问点杯咖啡的最小价格。
解题思路
考虑直接买还是使用优惠券,使
顺序表
顺序表的定义
线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列
顺序表 ---用顺序存储的方式实现线性表。顺序存储---把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。
如何知道一个数据
1. 位置对熵的重要性
1.1. 为了计算概率总需要多遍历一次数据集,而在计算出整个数据集中各符号的出现概率后,还要继续处理这些数值
1.1.1. 如果是相对较小的数据集,那么这些就不是什么问题
1.2. 随着要压缩的数据集变大,统计编码的结果与熵的偏差也会越来越大
1.2.1. 数据集的不同部
一、NumPy介绍
NumPy是Python中科学计算的基础包,它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。
功能强大的
二分看似简单,但需注意细枝末节
接下来简单探讨几种查询
以严格大于x的第一位数为例子
//序列为m ,x为查询的数
int find(int x){//假设序列长为n;
int l=1,r=n;
while(l<=r){
int mid=(l+r)>>1;
if(
反转链表-力扣206
方法一
public ListNode reverseList1(ListNode o1){
ListNode n1=null;
ListNode p=o1;
while(p!=null){
n1
什么是字典树?
一种高效的存储和查找字符串集合的数据结构
存储的字符串的个数不会太多
可以插入,查询,每次存入一组字符串结尾要进行着标记
模拟Trie树
#include <iostream>
using namespace std;
const int N = 1e5 + 10;
单链表的定义
什么是单链表
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。
单链表的各个数据元素在物理上可以是离散存放的,每个结点除了存放数据元素外,还要存储指向下一个节点的指针。而顺序表是连续存放的,每个结点中只存放数据元素。
前言
在生活中太阳的东升西落,鸟类的南飞北归,四级的轮换,每天的上下班,海水的潮汐,每月的房租车贷等等,如果用程序员的视角看,这就是一个个的定时任务,在日常的开发工作中也有很多的定时任务场景:
数仓系统凌晨进行的数据同步
订单12小时未支付的状态校验
rpc调用超时时间的校验
缓存数据失效时间的延
判环算法01
检验链表是否有环
//判断环
public boolean hasCycle(ListNode head){
ListNode p1=head;//乌龟
ListNode p2=head;//兔子
while (p2!
D.Chocolate
题意:
有一个n×m的矩形巧克力,Kelin先手Walk Alone后手选一个点(i, j)并吃掉所有 x <= i, y <= j的巧克力,谁吃掉最后一块巧克力则输。
分析:
对矩形大小进行讨论:
①1×1时,Kelin必输
②1×n或1×m时:Kelin可以
分治的核心思想是
自上而下通过递归不断将大问题拆分成两个或多个子问题,直至被拆分出来的子问题可以通过一些简单的方法解决
然后再自下而上地用子问题的解求解大问题的解
最终我们能得到初始问题的解
解决分治问题的时候的代码基本就是
限制左边界 == 右边界的时候返回值
将区间一分为二,根据条件进行模拟