无人机 公共场所 算法 密度

【算法】质数的判断与筛法

质数定义 不能被 \(2,3,...,n-1\) 整除的自然数 \(n\) 称之为素数,或质数。 判断单个质数 isPrime 那是不是一定要判断从 2 到 n-1 每个数能否整除 n 呢? 答案是不需要。 如果 k 整除 n,那么 n/k 也整除 n,它两位于 \(\sqrt n\) 两侧,判断了 ......
质数 算法

【算法题】买卖股票的最佳时机Ⅱ

题目链接 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大 利润 。 1 <= prices.length ......
算法 时机 股票

【算法题】删除有序数组中的重复项

题目链接 思路1:使用set。 /** * @param {number[]} nums * @return {number} */ var removeDuplicates = function(nums) { const uniqueSet=new Set(); for(let i=0;i<nu ......
数组 算法

【算法题】删除有序数组中的重复项Ⅱ

题目来源。 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 思路1:移动元素法。从后遍历数组,计数元素重复次数,当遇到不重 ......
数组 算法

【算法题】1163.按字典序排在最后的子串

题目链接 给你一个字符串 s ,找出它的所有子串并按字典序排列,返回排在最后的那个子串。 1 <= s.length <= 4 * \(10^5\) s仅含有小写英文字符。 最关键的是处理时间复杂度,怎么让他小于\(O(n^2)\)。 双指针法: /** * @param {string} s * ......
算法 字典 1163

【算法题】 O(1) 时间插入、删除和获取随机元素 JavaScript

题目链接 实现RandomizedSet 类: RandomizedSet() 初始化 RandomizedSet 对象 bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。 bool remove(int val) 当 ......
算法 JavaScript 元素 时间

算法题解——买卖股票的最佳时机

解题思路 先考虑最简单的「暴力遍历」,即枚举出所有情况,并从中选择最大利润。设数组 prices 的长度为n,由于只能先买入后卖出,因此第 1 天买可在未来n−1天卖出,第 2 天买可在未来n - 2天卖出……以此类推,共有 \[(n - 1) + (n - 2) + \cdots + 0 = \f ......
题解 算法 时机 股票

14.最长公共前缀

1.题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2: 输入:strs = ["dog","racecar","car"] 输出:"" 解 ......
前缀 14

【算法笔记】 数位dp (例题是 [SCOI2009] windy 数)

数位dp 引入 数位 :是指把一个数字按位数一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是 0~9,其他进制可类比十进制,就比如 链接: [SCOI2009] windy 数的二进制同理。 常见特征 要求统计满足一定条件的数的数量(即,最终目的为计数); 这些条件经过转 ......
例题 数位 算法 笔记 windy

【图论】最近公共祖先 学习笔记

LCA 基本概念 对于一个有根树,如果点 \(z\) 既是点 \(x\) 的祖先,又是点 \(y\) 的祖先,则说点 \(z\) 是 \(x\) 和 \(y\) 的公共祖先。每对点的所有公共祖先里,深度最大的那个点被称作这两个或多个点的最近公共祖先(lca)。 lca 有很多优秀的性质,例如经过 l ......
祖先 笔记

一.排序算法---快速排序

1.快速排序 1)快速排序(自定义实现) Quick_Sort 函数:它采用一个整数数组 arr,以及两个索引 begin 和 end,表示排序范围的起始和结束位置。如果 begin 大于或等于 end,则数组无需排序,因此直接返回。否则,它选择一个基准元素(通常是数组的第一个元素),然后通过比较和 ......
算法

Java 深度优先搜索 and 广度优先搜索的算法原理和代码展示

111. 二叉树的最小深度 题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 方法1:深度优先搜索 原理:深度优先搜索(Depth First Search)是一种遍历图的算法,它从图中的某个顶点出发,沿着一条路径不 ......
广度 算法 深度 原理 代码

算法0506 对数器 二分搜索

对数器 非常重要的自我验证代码正确性的方法 在面试时或机试时写算法题,没有测试用例或者测试用例太少,导致巨大的数据量无法进行测试时。需要自己写测试用例数据时可以使用对数器。 ......
对数 算法 0506

算法讲解0304

1、打印二进制 void print(int num) { for(int i = 31; i >= 0; i--) if((num &(1 << i)) == 0) cin>>0; else cin >> 1; } 2、选择排序 void selectionSort(int arry[]) { i ......
算法 0304

C++基本算法大致总结

排序算法: 快速排序(Quick Sort):使用std::sort或自定义实现。 归并排序(Merge Sort):自定义实现或使用std::stable_sort。 堆排序(Heap Sort):自定义实现或使用std::make_heap和std::sort_heap。 搜索算法: 二分查找( ......
算法

高精度算法

1.高精度加法 这个比较简单一些,主要是考虑满10进位的问题,直接写代码就可以。(若数字很大的话,不太好运算,所以将数字转化成字符串的形式输入) #include <iostream> using namespace std; const int N = 100010; int A[N], B[N] ......
高精 高精度 算法

KMP模式匹配算法

例题展示 例题解决 ......
算法 模式 KMP

10.14算法

给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。打乱后,数组的所有排列应该是 等可能 的。 实现 Solution class: Solution(int[] nums) 使用整数数组 nums 初始化对象int[] reset() 重设数组到它的初始状态并返回int[] shu ......
算法 10.14 10 14

算法题解——多数元素

题目 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:nums = [3,2,3] 输出:3 示例 2: 输入:nums = [2,2,1,1,1,2 ......
题解 算法 元素

算法题解——轮转数组

题目 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7 ......
题解 数组 算法

1.2算法和算法评价

1.2.1算法的基本概念 知识总览 什么事算法 程序=数据结构+算法 算法(Algorithm〉是对特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作 算法的特性 有穷性。一个算法必须总在执行有穷步之后结束,且每一步都可在有穷时间内完成。注:算法必须是有穷的,而程序可以 ......
算法 1.2

基础算法

排序算法 排序算法(英语:Sorting algorithm):是一种将一组特定的数据按某种顺序进行排列的算法。排序算法多种多样,性质也大多不同。 稳定性:稳定性是指相等的元素经过排序之后相对顺序是否发生了改变。 拥有稳定性这一特性的算法会让原本有相等键值的纪录维持相对次序,即如果一个排序算法是稳定 ......
算法 基础

ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测|附代码数据

全文下载链接:http://tecdat.cn/?p=12174 最近我们被客户要求撰写关于ARMA-EGARCH的研究报告,包括一些图形和统计输出。 本文比较了几个时间序列模型,以预测SP500指数的每日实际波动率。基准是SPX日收益序列的ARMA-EGARCH模型。将其与GARCH模型进行比较 ......
算法 ARMA-EGARCH 模型 实际 代码

Python:利用math和random模块实现RSA加密算法

实验五报告: 利用math和random模块实现RSA加密算法 实验目标 本实验的主要目标是熟悉RSA(Rivest-Shamir-Adleman)密码算法的编写,其中包括求最大公因子、模逆的扩展欧几里得算法、素性检测算法、生成大素数、生成RSA公私钥对以及RSA加密和解密。 实验要求 通过编写Py ......
算法 模块 Python random math

算法学习笔记(3.1): ST算法

ST表 在RMQ(区间最值)问题中,著名的ST算法就是倍增的产物。ST算法可以在 \(O(n \log n)\) 的时间复杂度能预处理后,以 \(O(1)\) 的复杂度在线回答区间 [l, r] 内的最值。 当然,ST表不支持动态修改,如果需要动态修改,线段树是一种良好的解决方案,是 \(O(n)\ ......
算法 笔记 3.1

软考-算法与数据结构1

一、数组和稀疏矩阵 1、 数组 一维数组a[i]:a+i*len 二维数组a[i][j]: 在[0···m][0···n] 按行存储:base+(i*n+j)*len 按列存储:base+(j*m+i)*len 在[1···m][1···n] 按行存储:base+((i-1)*n+(j-1))*le ......
数据结构 算法 结构 数据

浅谈区间覆盖离线算法——pq差分

前置知识:STL 或者手打优先队列(堆),`vector`。 这里为了代码方便,后面的代码均使用 STL 优先队列,想看手打堆的话可以看别的巨佬的博客然后去 [模板](https://www.luogu.com.cn/problem/P3378) 或者 Acwing 练手。 该算法可以运用优先队列, ......
区间 算法

算法修养--A*寻路算法

本文从广度优先算法为切入点,介绍了广度优先算法、Dijkstra算法、最佳优先搜索以及A*寻路算法, 并展示核心算法代码实现。 ......
算法 修养

Exception in thread "main" java.security.InvalidKeyException: Wrong key size问题的解决(DES加密算法遇到)

问题描述 在Java里面使用DES加密算法,然后就爆出这个错误: 问题解决 换用了另外一种加密解密的函数:SecretKeySpec; 即将原来的这种: 换成了这种: 我是觉得使用DES加密算法时,它一直显示key的字节长度不对,就想着换一种表述方式,又看到了别的友友的经验分享,就换成这样试了试(直 ......

逆波兰表达式与迷宫算法

中项表达式是人类的算术思路,逆波兰表达式是机器结合栈结构完成算式解析的最佳结构。 文章链接:https://zhuanlan.zhihu.com/p/357982040 迷宫算法 文章链接:https://blog.csdn.net/m0_53157173/article/details/11448 ......
表达式 迷宫 算法