中位数 数组 算法

713. 乘积小于 K 的子数组

力扣题目链接 给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。 示例 1: 输入:nums = [10,5,2,6], k = 100 输出:8 解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6]、[10,5 ......
乘积 数组 713

使用 MybatisPlusCore 自带的雪花算法生成不重复数字

这里不介绍雪花算法的实现原理,可以自行搜索查阅网上的资料。这里主要介绍雪花算法的使用场景,如何调用第三方类库 Mybatis Plus Core 自带的方法来使用雪花算法。 雪花算法的主要使用场景,就是生成不重复的数字,作为数据库表的主键使用。你可能会使用 uuid 作为主键,但是其占用 16 个字 ......
MybatisPlusCore 算法 雪花 数字

面试题45(Java)-把数组排成最小的数(中等)

题目: 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 输入: [10,2] 输出: "102" 示例 2: 输入: [3,30,34,5,9] 输出: "3033459" 提示: 0 < nums.length <= 100 说明: 输出 ......
数组 Java 45

树状数组

树状数组 简单记录一下模板和用法,不做深入证明探究! 能解决的问题: 区间查询前缀和 单点修改(某个值+一个数) 是一个在 logN复杂度就能完成以上操作的数据结构。严格来说,能解决的问题是线段树的子集。 树状数组能够解决的问题,线段树一定可以解决!但是树状数组代码简单好写,相比臃肿庞大的线段树,能 ......
数组

Go 语言数组和切片的区别

原文链接: Go 语言数组和切片的区别 在 Go 语言中,数组和切片看起来很像,但其实它们又有很多的不同之处,这篇文章就来说说它们到底有哪些不同。 另外,这个问题在面试中也经常会被问到,属于入门级题目,看过文章之后,相信你会有一个很好的答案。 数组 数组是同一种数据类型元素的集合,数组在定义时需要指 ......
数组 语言 Go

453.最小操作次数使数组元素相等

最小操作次数使数组元素相等 给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。 示例 1: 输入:nums = [1,2,3] 输出:3 解释: 只需要3次操作(注意每次操作会增加两个元素的值): [1,2,3] => [2,3,3] ......
数组 元素 次数 453

【算法学习】图论模板

注意! 并查集只适用于无向图。 DFS 特点:当前层可以获得下层状态、向下层不断遍历 处理方式:递归 模板: // dfs注意剪枝 void dfs(int u){ if(u > n) { 输出路径 return; } for(int i = 0; i < n;i ++) // 遍历点 { if(条 ......
算法 模板

算法中的初始化0x3f

写算法的时候,我们常常需要用到设置一个常量用来代表“无穷大”,比如对于int类型的数,有的人会采用INT_MAX,即0x7fffffff作为无穷大。 但是以INT_MAX为无穷大常常面临一个问题,即加一个其他的数会溢出。而这种情况在动态规划,或者其他一些递推的算法中常常出现,很有可能导致算法出问题。 ......
算法 0x3f 0x x3 3f

1438. 绝对差不超过限制的最长连续子数组

力扣题目链接 给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。 如果不存在满足条件的子数组,则返回 0 。 示例 1: 输入:nums = [8,2,4,7], limit = 4 输出 ......
数组 1438

[LeetCode] 1338. Reduce Array Size to The Half 数组大小减半

You are given an integer array arr. You can choose a set of integers and remove all the occurrences of these integers in the array. Return the minimum ......
数组 LeetCode 大小 Reduce Array

算法随想Day53【单调栈】| LC84-柱状图中最大的矩形

int largestRectangleArea(vector& heights) { int result = 0; stack st; heights.insert(heights.begin(), 0); heights.push_back(0); st.push(0); for (int i ......
矩形 随想 算法 Day 53

算法随想Day52【单调栈】| LC503-下一个更大元素Ⅱ、LC42-接雨水

LC503. 下一个更大元素Ⅱ 对于“每日温度”,相当于对nums数组,进行了两次遍历。用i % size所得余数作为下标,且循环的圈数为size * 2 vector<int> nextGreaterElements(vector<int>& nums) { int size = nums.siz ......
随想 算法 雨水 元素 LC

算法随想Day51【单调栈】| LC739-每日温度、LC496-下一个更大元素Ⅰ

LC739. 每日温度 vector<int> dailyTemperatures(vector<int>& temperatures) { int size = temperatures.size(); vector<int> result(size, 0); vector<int> sta; s ......
随想 算法 元素 温度 LC

Quine-McCluskey算法简介及其C++代码实现

Algorithm List all minterms (and don't care terms) Step by step merging one layer at a time (note that only two minimum terms with a distance of 1 can ......

机器——算法

上位机(计算机视觉)(AGX) 下位机(单片机)控制具体硬件(STM32) GPIO STM32 基于ARM的32位微控制器 F通用类型 407产品子系列 Z引脚数目:T36 C48 R64 V100 Z144 G闪存存储器容量 实验内容 控制LED灯闪烁 需要具备的能力 单片机编程能力 C/C++ ......
算法 机器

golang蒙特卡洛树算法实现五子棋AI

已经实现蒙特卡洛树算法的通用逻辑,只需要对应结构体实现相关接口就可以直接使用该算法。 优化算法主要优化GetActions生成下一步动作,要尽可能少,去掉无意义的动作。 以及优化ActionPolicy从众多动作挑选比较优秀的动作。对应五子棋就是执行该动作后当前局面评分最高。 package mai ......
五子棋 算法 golang

进程调度算法

1、先来先服务FCFS 非抢占式,按照请求顺序来进行调度。 有利于长作业,不利于短作业,短作业等待时间长。 2、最短作业优先 非抢占式,按照运行时间最短顺序调度。 长作业可能饿死,等待短作业一直得不到运行。 3、最短剩余时间优先 短作业的抢占式版本,按剩余时间调度。 4、时间片轮转 按FCFS原则排 ......
算法 进程

【入门】Go语言排序算法详解

1、冒泡排序 冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻的两个元素,并在必要时交换它们的位置,直到没有任何一对元素需要交换为止。该算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 package main import "fmt" // 我们定义了一个名为`bu ......
算法 语言

【算法专题】容斥原理

【算法专题】容斥原理 题 E. Devu and Flowers https://codeforces.com/contest/451/problem/E 前置知识:隔板法 然后正难则反,把至多取 $a_i$ 个转化为 至少取 $a_i+1$ 的反问题,就能套用隔板法的公式了。 答案即为: #inc ......
算法 原理 专题

java方法-稀疏数组

稀疏数组 当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组 稀疏数组的处理方式是: 记录数组一共有几行几列,有多少个不同值 把具体不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模 如图:左原始数组,右稀疏数组 ......
数组 方法 java

递归算法

递归算法 递归算法是一种通过调用自身来解决问题的算法。递归算法通常涉及到将一个问题划分为较小的子问题来解决,并在子问题中调用自身来完成。 递归算法的基本思想是,将一个大问题转化为一个或多个相同结构的小问题,直到问题变得足够小以便直接解决。然后将这些小问题的解组合成原始问题的解。在递归算法中,一个函数 ......
算法

树状数组

树状数组 简介 树状数组是一种用于维护 $n$ 个数的区间和的数据结构。 一般能用树状数组做的题,都可以使用线段树来做。相较于码量,树状数组的码量要比线段树少许多,不过相对应的,它所能实现的功能没有线段树多。 好的,不多说废话,下面进入正题。 例题 1:P3374【模板】树状数组 1 例题 2:P3 ......
数组

剑指offer42(Java)-连续子数组的最大和(简单)

题目: 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例1: 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 提示: 1 <= ar ......
数组 offer Java 42

算法导论-第2章-算法基础

第2章 算法基础 2.1 插入排序(Insertion sort) 输入:$n$个数的序列$<a_1,a_2,\cdots,a_n>$ 输出:输入序列的一个排列$<a_1^{'},a_2^{'},\cdots,a_n^{'}>$,满足$a_1^{'} \le a_2^{'} \le \cdots \ ......
算法 导论 基础

算法导论-第1章-算法在计算中的作用

第1章 算法在计算中的作用 1.1 算法(Algorithms) 非形式地说,算法(algorithm)是任何明确定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或某个值的集合作为输出。因此算法就是将输入转换为输出的一系列计算步骤。 Informally, an algorithm is ......
算法 导论 作用

VBA 对象数组排序算法分享

Function SrotObjectByProperty(objsToSort As Variant, PropertyName As String, Optional 降序 As Boolean = True) If IsEmpty(objsToSort) Then Exit Function ......
数组 算法 对象 VBA

HJ69_矩阵乘法_数组

思路: 三层循环实现矩阵相乘。 import sys a=[] for line in sys.stdin: a.append(list(map(int,line.strip().split()))) #print(a) matrix1=a[3:3+a[0][0]] matrix2=a[3+a[0] ......
乘法 数组 矩阵 HJ 69

算法笔记之并查集

并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。常常在使用中以森林来表示。 ......
算法 笔记

Java 数组

数组 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成 每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们 数组的声明和创建 首先必须声明数组变量,才能在程序中使用数组。 Java语言使用new操作符来创建数组,语法如下: dataTyp ......
数组 Java

Java 稀疏数组

稀疏数组 当一个数组中大部分元素为0时,或者为同一值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方式是: 记录数组一共有几行几列,有多少个不同值 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模 下面对该原始数组进行压缩,求出其稀疏数组: public stati ......
数组 Java