题解 算法
扎实打牢数据结构算法根基,从此不怕算法面试系列之010 week02 01-01 最简单的排序算法-选择排序法的设计思想
#1、基础排序算法 接下类,我们学习另外一类非常基础的算法,即排序算法。 排序算法是计算机科学领域研究的非常深入的一类算法,排序这个动作本身也是非常重要的, 很多时候面对无需的数据,首先需要做的就是对他们进行排序。 排序算法——目的:让数据有序。 排序算法——种类:种类也非常多,适用于不同的情景。 ......
P1350 车的放置 题解
一、题目描述: 给你一个网格棋盘,a,b,c,d 表示了对应边长度,也就是对应格子数。 例如,当 a=b=c=d=2 时,对应如下面这样一个棋盘: 想要在这个棋盘上放 k 棋子,也就是这 k 个棋子没有两个在同一行,也没有两个在同一列,问有多少种方案。 数据保证 0 <= a,b,c,d,k <= ......
查找算法
查找算法 1. 线性查找 线性查找(Order Search)是最简单的一种查找算法,直接从头到尾遍历,直至找到要查找的值为止。 1.1 代码实现 package com.algorithm; /** * @author SnkrGao * @create 2023-04-20 19:52 */ p ......
算法学习day01数组part02-209、59、977
package LeetCode.arraypart02; /** * 209. 长度最小的子数组 * 给定一个含有n个正整数的数组和一个正整数 target 。 * 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组[numsl, numsl+1, ..., numsr-1, num ......
快速幂算法——求a^b % p的一种快速方法
先想暴力怎么求解 可以循环b次,每次从而求出a^b % p,时间复杂度为O(b),而这里的b是很大的,达到了2 * 10 ^ 9数量级,所以这么做会TLE 1 #include <iostream> 2 using namespace std; 3 int main() { 4 int a, b, ......
算法、一个数组中有10个数字,把这组数数据分在div上,每个div上最多只能有4个数字,用for循环怎么实现
来自chartGPT的写法: const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; const divNum = 4; // 每个div上最多只能有4个数字 for (let i = 0; i < arr.length; i += divNum) { const ......
基础算法-快速排序
思路 快速排序是一种常见的排序算法,它的基本思路是通过分治的方法将一个大的问题分解成小的问题进行解决。具体而言,快速排序的核心思路是选取一个枢轴元素,将序列分为两个子序列,其中一个子序列的所有元素都比枢轴元素小,而另一个子序列的所有元素都比枢轴元素大,然后对这两个子序列分别进行递归排序,直到子序列的 ......
基础算法-堆排序
思路 堆是一种完全二叉树,其中每个节点的值都大于或等于其子节点的值,被称为“大根堆”;或者每个节点的值都小于或等于其子节点的值,被称为“小根堆”。在堆排序中,我们使用的是大根堆,即根节点的值是最大的元素。 堆排序的基本思路是: 建立一个大根堆。将待排序的序列构建成一个大根堆,即所有非叶子节点的值都大 ......
基本算法-基数排序
思想 当我们需要对一组数据进行排序时,常规的排序算法(如快速排序、归并排序等)通常是比较排序,即通过比较元素之间的大小关系来进行排序。但有时候我们需要对一组数据按照它们的“数字位”进行排序,此时比较排序并不是最优的选择,这时候基数排序就显得非常有效了。 基数排序是一种非比较排序算法,它根据元素的每个 ......
[ARC138D] Differ by K bits 题解
小清新构造题。 首先 $K=1$ 的情况是 trival 的,直接格雷码即可。 对于 $K>1$,我们发现题目的约束相当于 $\operatorname{popcount}(P_i\oplus P_{(i+1)\bmod 2^N})=K$,考虑 $P_i$ 的差分序列 $D_i$,那么 $D_i$ ......
团体程序设计天梯赛 L1-064 估值一亿的AI核心代码 题解
思路 L1-064 估值一亿的AI核心代码 题意有一点不太清晰的,就是原文中的'I',无论是否是单独的,都不能变为小写。如果是单独的'I'再被转化为'you'。 这种模拟题就需要每个的分分清清楚楚的,不要都揉到一块儿,容易写错。具体还有些需要注意的在代码里注释着了。 代码 #include <ios ......
基于RL(Q-Learning)的迷宫寻路算法
强化学习是一种机器学习方法,旨在通过智能体在与环境交互的过程中不断优化其行动策略来实现特定目标。与其他机器学习方法不同,强化学习涉及到智能体对环境的观测、选择行动并接收奖励或惩罚。因此,强化学习适用于那些需要自主决策的复杂问题,比如游戏、机器人控制、自动驾驶等。强化学习可以分为基于价值的方法和基于策 ......
Redis 为何使用Nearly LRU 算法淘汰数据
Redis 使用该 LRU 算法淘汰过期数据吗?不是的。 由于 LRU 算法需要用链表管理所有的数据,会造成大量额外的空间消耗。 大量的节点被访问就会带来频繁的链表节点移动操作,从而降低了 Redis 性能。 Redis的内存空间是很宝贵的,而维护LRU的双向链表需要使用比较多的额外空间,至少需要一 ......
C++写算法常用函数
title: C++写算法常用函数 字符串转数字 int num = stoi(s); 数字转字符串 string s = to_string(num); 字符串末尾添加字符 s.push_back('a'); 字符串末尾添加字符串 s.append("asd"); 字符串读取 1、用cin读取 s ......
JVM垃圾回收机制之对象回收算法
在前面的文章中,介绍了JVM内存模型分为:堆区、虚拟机栈、方法区、本地方法区和程序计数器,其中堆区是JVM中最大的一块内存区域,在Java中的所有对象实例都保存在此区域,它能被所有线程共享。 在Java中还有一个重要的机制:GC(垃圾收集器),堆是GC管理的主要区域,本文会带大家了解GC机制。 GC ......
Python用哈希算法查找相似图片(包括不同分辨率,不同大小,不同格式的图片)
# -*- coding: utf-8 -*- ''' Python用哈希算法查找相似图片并放入[_df]的文件夹中 相似图片包括不同分辨率,不同大小,不同格式,只要图片相似就会算重复文件 安装cv2 pip install opencv-python ''' import os import cv ......
[Educational Codeforces Round 147 (Rated for Div. 2)](https://codeforc.es/contest/1821)题解A~D
A: 思路: 首字母如果是0,直接输出0。 如果首字母是?,提供九种方案,之后每一个?提供10种方案。 void solve(){ string s; cin>>s; if(s[0]=='0'){ cout<<"0"<<endl; return ; } int ans=1; for(int i=0; ......
从原理聊JVM(一):染色标记和垃圾回收算法
本篇介绍了JVM中垃圾回收器相关的基础知识,后续会深入介绍CMS、G1、ZGC等不同垃圾收集器的运作流程和原理,欢迎关注。 ......
AT_abs297_e 题解
一、题目描述: 给你 n 个正整数,求这些数能凑成的第 k 大的数字(如果多种方式凑成同一个数,只算一次)。每个数可以选择无限次,且至少选择一个数。n<=10,k<=2e5 。 二、解题思路: 一开始想了好多错误思路。(话说这个题学校 OJ 上是不是遇到过,怎么感觉这么熟悉?) 很容易想到有用一个优 ......
Diffie-Hellman密钥交换算法
隐私计算常用到各种加密算法,那么双方如何协商得到同一个不被泄露的密钥呢?
一种做法是基于RSA,拥有公钥的一方将随机私钥加密提供给对方,对方再利用私钥解密出密钥。于是双方都得到了会话密钥。
本篇是另一种密钥交换算法,可以保证“通讯双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥”:... ......
算法题目
-- coding: utf-8 -- """ Created on Wed Jun 1 15:34:00 2022 @author: guess who i am """ 说明: 1 本文共一百八九十道题,涵盖了截止2022.6.30我在网上所见到的所有题,真正的最全题库,只有答案没有题目。 ht ......
【题解】Loj #6029. 「雅礼集训 2017 Day1」市场
#6029. 「雅礼集训 2017 Day1」市场 题目描述 数据范围1e5 题解 对于这种数据貌似可以快速缩小的题目,我们可以用势能分析来证明其某暴力或者什么做法的复杂度。 设某节点的势能函数是点内数的极差,每次除一个数极差一定会减半,总共会被除 $\log$ 次。 然而有特殊情况,如果考虑下取整 ......
【题解】P4069 [SDOI2016]游戏
题目描述 Alice 和 Bob 在玩一个游戏。 游戏在一棵有 $n$ 个点的树上进行。最初,每个点上都只有一个数字,那个数字是 $123456789123456789$。 有时,Alice 会选择一条从 $s$ 到 $t$ 的路径,在这条路径上的每一个点上都添加一个数字。对于路径上的一个点 $r$ ......
牛顿迭代法求方程根(递归算法)
#include<iostream>#include<cmath>using namespace std;double f_origianal(double a, double b, double c, double d, double newx){ return a * pow(newx, 3) ......
【题解】P5327 [ZJOI2019] 语言
P5327 [ZJOI2019] 语言 题目描述 九条可怜是一个喜欢规律的女孩子。按照规律,第二题应该是一道和数据结构有关的题。 在一个遥远的国度,有 $n$ 个城市。城市之间有 $n - 1$ 条双向道路,这些道路保证了任何两个城市之间都能直接或者间接地到达。 在上古时代,这 $n$ 个城市之间处 ......
护士排班——线性规划算法的实现
一、问题描述 护士排班问题是指在医院中,如何合理地安排护士的工作时间,以满足患者的需求,同时保证护士的工作质量和生活质量。该问题通常涉及到多个护士、多个班次和多个工作日,需要考虑护士的工作时间、休息时间、轮班时间等因素。 二、线性规划模型 为了解决护士排班问题,可以采用线性规划模型。假设有 n 个护 ......
几何算法
C++常用计算几何算法 - 小四的海市蜃楼 - C++博客 (cppblog.com) (59条消息) C++常用计算几何算法_计算几何常用算法 c++_Belial_2010的博客-CSDN博客 ......
4-算法
常见的七种查找算法: 1. 基本查找 也叫做顺序查找 说明:顺序查找适合于存储结构为数组或者链表。 基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线的一端开始,顺序扫描,依次将遍历到的结点与要查找的值相比较,若相等则表示查找成功;若遍历结束仍没有找到相同的,表示查找失败。 示例代 ......
SQL JOIN的常见连接算法(转载)
原文:https://zhuanlan.zhihu.com/p/495442432 在数据库和大数据领域,通过SQL中的JOIN连接将两个及两个以上的表(或中间表、视图、物化视图)中的数据 按指定的连接条件关联起来,是很常用也很方便的操作。 我们前面学习了JOIN有多种常见连接方式如内连接INNER ......