算法leetcode day 30

算法学习day01数组part02-209、59、977

package LeetCode.arraypart02; /** * 209. 长度最小的子数组 * 给定一个含有n个正整数的数组和一个正整数 target 。 * 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组[numsl, numsl+1, ..., numsr-1, num ......
数组 算法 part day 209

【LeetCode动态规划#11】打家劫舍系列题(涉及环结构和树形DP的讨论)

打家劫舍 力扣题目链接(opens new window) 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不 ......
打家劫舍 树形 LeetCode 结构 动态

快速幂算法——求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 ......
数字 数组 算法 div 数据

基础算法-快速排序

思路 快速排序是一种常见的排序算法,它的基本思路是通过分治的方法将一个大的问题分解成小的问题进行解决。具体而言,快速排序的核心思路是选取一个枢轴元素,将序列分为两个子序列,其中一个子序列的所有元素都比枢轴元素小,而另一个子序列的所有元素都比枢轴元素大,然后对这两个子序列分别进行递归排序,直到子序列的 ......
算法 基础

基础算法-堆排序

思路 堆是一种完全二叉树,其中每个节点的值都大于或等于其子节点的值,被称为“大根堆”;或者每个节点的值都小于或等于其子节点的值,被称为“小根堆”。在堆排序中,我们使用的是大根堆,即根节点的值是最大的元素。 堆排序的基本思路是: 建立一个大根堆。将待排序的序列构建成一个大根堆,即所有非叶子节点的值都大 ......
算法 基础

基本算法-基数排序

思想 当我们需要对一组数据进行排序时,常规的排序算法(如快速排序、归并排序等)通常是比较排序,即通过比较元素之间的大小关系来进行排序。但有时候我们需要对一组数据按照它们的“数字位”进行排序,此时比较排序并不是最优的选择,这时候基数排序就显得非常有效了。 基数排序是一种非比较排序算法,它根据元素的每个 ......
基数 算法

Java-Day-13(抽象类 + 接口 + 内部类)

Java-Day-13 抽象类 ( abstract ) 当父类的某些方法需要声明,但是又不确定如何实现时 ( 主要在于子类的重写时 ),可以将其声明为抽象方法,那么这个类就是抽象类 所谓抽象方法就是没有实现的方法,而所谓没有实现就是指没有方法体 当一个类中存在抽象方法时,需要将该类声明为 abst ......
Java-Day 接口 Java Day 13

基于RL(Q-Learning)的迷宫寻路算法

强化学习是一种机器学习方法,旨在通过智能体在与环境交互的过程中不断优化其行动策略来实现特定目标。与其他机器学习方法不同,强化学习涉及到智能体对环境的观测、选择行动并接收奖励或惩罚。因此,强化学习适用于那些需要自主决策的复杂问题,比如游戏、机器人控制、自动驾驶等。强化学习可以分为基于价值的方法和基于策 ......
迷宫 算法 Q-Learning Learning RL

day 12 存钱问题

1.找到相关年份的限制条件(年总和不可以超过20); 2.根据限制遍历所有情况(采用循环); 3.定义Max记录最大值; 4.输出 #include<iostream> using namespace std; int x8,x5,x3,x2,x1; double f(int num,double ......
问题 day 12

Redis 为何使用Nearly LRU 算法淘汰数据

Redis 使用该 LRU 算法淘汰过期数据吗?不是的。 由于 LRU 算法需要用链表管理所有的数据,会造成大量额外的空间消耗。 大量的节点被访问就会带来频繁的链表节点移动操作,从而降低了 Redis 性能。 Redis的内存空间是很宝贵的,而维护LRU的双向链表需要使用比较多的额外空间,至少需要一 ......
算法 数据 Nearly 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 ......
算法 机制 对象 垃圾 JVM

day36| 435+763+56

435. 无重叠区间 题目简述: 给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 思路: 利用昨天题目452的思路即可 代码: class Solution: def eraseOve ......
day 435 763 36 56

Python用哈希算法查找相似图片(包括不同分辨率,不同大小,不同格式的图片)

# -*- coding: utf-8 -*- ''' Python用哈希算法查找相似图片并放入[_df]的文件夹中 相似图片包括不同分辨率,不同大小,不同格式,只要图片相似就会算重复文件 安装cv2 pip install opencv-python ''' import os import cv ......
图片 算法 分辨率 大小 格式

【总结】浅刷leetcode,对于位运算提高性能的一些总结

目录 什么是位运算? 位运算技巧 1. 判断奇偶性 2. 交换两个数 3. 判断一个数是否是2的幂次方 4. 取绝对值 5. 计算平均数 结论 位运算技巧是计算机科学中非常重要的一部分,它可以用来解决很多实际问题。在本篇博客中,我们将介绍一些常见的位运算技巧,以及它们在实际应用中的使用。 什么是位运 ......
leetcode 性能

从原理聊JVM(一):染色标记和垃圾回收算法

本篇介绍了JVM中垃圾回收器相关的基础知识,后续会深入介绍CMS、G1、ZGC等不同垃圾收集器的运作流程和原理,欢迎关注。 ......
算法 标记 原理 垃圾 JVM

Diffie-Hellman密钥交换算法

隐私计算常用到各种加密算法,那么双方如何协商得到同一个不被泄露的密钥呢? 一种做法是基于RSA,拥有公钥的一方将随机私钥加密提供给对方,对方再利用私钥解密出密钥。于是双方都得到了会话密钥。 本篇是另一种密钥交换算法,可以保证“通讯双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥”:... ......
密钥 Diffie-Hellman 算法 Hellman Diffie

redis高级-day5——redis集群原理及搭建

一、集群原理及搭建 当我们做了读写分离,做了高可用,还存在问题 并发量:单机redis qps为10w/s,但是我们可能需要百万级别的并发量 数据量:机器内存16g--256g,如果存500g数据呢? Redis集群是一个分布式的Redis数据库系统,它可以在多个节点上存储数据,并提供高可用性和可伸 ......
redis 集群 原理 day5 day

算法题目

-- 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$ 次。 然而有特殊情况,如果考虑下取整 ......
题解 市场 6029 2017 Day1

day35| 860+406+452

860. 柠檬水找零 题目简述: 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。 注意 ......
day 860 406 452 35

牛顿迭代法求方程根(递归算法)

#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) ......
迭代法 方程 算法

leetcode_打卡09

leetcode_打卡09 题目:443. 压缩字符串 思路:双指针 代码: class Solution { public int compress(char[] chars) { int n = chars.length; int write = 0, left = 0; for (int re ......
leetcode

leetcode_打卡10

leetcode_打卡10 题目:283. 移动零 思路:双指针,数值互相交换,不是复制覆盖 代码: class Solution { public void moveZeroes(int[] nums) { int n=nums.length; int l=0,r=0; while(r<n){ i ......
leetcode

day0

Markdown学习 标题 三级标题 四级标题 字体 hello,World(/ctrl+b) hello,world(/ctrl+i) hello,world hello,world hello,world(/ctrl+u) 引用 选择狂神说java(>引用,连按两次回车结束引用) 分割线 (三个 ......
day0 day

护士排班——线性规划算法的实现

一、问题描述 护士排班问题是指在医院中,如何合理地安排护士的工作时间,以满足患者的需求,同时保证护士的工作质量和生活质量。该问题通常涉及到多个护士、多个班次和多个工作日,需要考虑护士的工作时间、休息时间、轮班时间等因素。 二、线性规划模型 为了解决护士排班问题,可以采用线性规划模型。假设有 n 个护 ......
线性 算法 护士

【DP】LeetCode 312. 戳气球

题目链接 312. 戳气球 思路 参考动态规划套路解决戳气球问题 分析动态规划题目的时候只需要考虑最后一个阶段,因为所有的阶段转化都是相同的,考虑最后一个阶段容易发现规律 在数组的动态规划问题中,一般 dp[i] 都是表示以 nums[i] 为结尾的状态;dp[i][j] 分别表示 以 nums1[ ......
气球 LeetCode 312

几何算法

C++常用计算几何算法 - 小四的海市蜃楼 - C++博客 (cppblog.com) (59条消息) C++常用计算几何算法_计算几何常用算法 c++_Belial_2010的博客-CSDN博客 ......
几何 算法

4-算法

常见的七种查找算法: 1. 基本查找 ​ 也叫做顺序查找 说明:顺序查找适合于存储结构为数组或者链表。 基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线的一端开始,顺序扫描,依次将遍历到的结点与要查找的值相比较,若相等则表示查找成功;若遍历结束仍没有找到相同的,表示查找失败。 示例代 ......
算法