整数 数组 算法codility

扩展欧几里得算法

扩展欧几里得算法 裴蜀定理(Bézout's lemma) 定义 设 \(a,b\) 是不全为零的整数,对任意整数 \(x,y\),满足 \(\gcd(a,b)\mid ax+by\),且存在整数 \(x,y\), 使得 \(ax+by=\gcd(a,b)\). 证明 对于第一点 由于 \(\gcd ......
算法

文心一言 VS 讯飞星火 VS chatgpt (150)-- 算法导论12.2 6题

六、用go语言,考虑一棵二叉搜索树 T ,其关键字互不相同。证明:如果 T 中一个结点 x 的右子树为空,且 x 有一个后继 y ,那么 y 一定是 x 的最底层祖先,并且其左孩子也是 x 的祖先。(注意到,每个结点都是它自己的祖先。) 文心一言,代码正常运行: 灵捷3.5 。 为了证明上述命题,我 ......
文心 导论 算法 chatgpt VS

算法入门经典 刘汝佳 4.2 地址与指针

4.2 地址和指针 4.1节介绍的数学函数的特点是:做计算,然后返回一个值。有时候,我们要做的事情 并不是“计算”——如交换两个变量;而有时候,我们需要返回两个甚至更多的值——如解一个二元一次方程组。 4.2.1 变量交换 程序4-4 用函数交换变量(错误) #include<stdio.h> vo ......
指针 算法 地址 经典 4.2

不平衡少样本数据集的算法方案

在图像实际的细分场景中,经常会遇到数据集不均衡以及数据集数量有限等问题,如何有效利用数据集,提升自己的算法效果,这里大刀基于自己的实际项目经验,分享在实际图像分类领域遇到问题,以及解决的方案,供参考。 前言 大家好,我是张大刀。之前有个智慧工地的项目,其中一个需求是监控工地上的起重机的使用合规性情况 ......
样本 算法 方案 数据

java基于权重的抽奖算法

最近需要写一个抽奖的功能(附带权重),根据这位博主https://blog.51cto.com/u_16213431/7116970,的算法理解了一下,记录下来 import java.util.ArrayList;import java.util.List;import java.util.Ran ......
权重 算法 java

秦疆的Java课程笔记:57 数组 Arrays类讲解

数组的工具类java.util.Arrays 由于数组对象本身并没有什么方法可以供我们使用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本操作。 查看JDK帮助文档-Class Arrays Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接 ......
数组 课程 笔记 Arrays Java

秦疆的Java课程笔记:59 数组 稀疏数组

当一个数组中大部分元素都是0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方式是: 记录数组一共有几行几列,有多少个不同值 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模 public class ArrayDemo1 { public static ......
数组 课程 笔记 Java

秦疆的Java课程笔记:58 数组 冒泡排序

总共有八大排序,其中冒泡排序无疑是较为出名的排序算法之一。 冒泡排序的代码相当简单,两层循环,外层冒泡轮数,里层依次比较。 当看到嵌套循环,应该立马意识到,这个算法的时间复杂度是\(O(n^2)\)。 冒泡排序基本步骤: 比较数组中两个相邻元素,如果第一个数比第二个数大,就交换位置。 每一次比较,产 ......
数组 课程 笔记 Java

秦疆的Java课程笔记:56 数组 二维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。 秦疆老师表示Java中并不太使用二维以上的多维数组。 例如二维数组:int a[][] = new int[2][5],就可以看成是一个两行五列的数组 public class ArrayDemo1 { ......
数组 课程 笔记 Java

刷题复习(二)数组-双指针

刷题复习(二)数组-双指针 https://labuladong.gitee.io/algo/di-ling-zh-bfe1b/shuang-zhi-fa4bd/ 1、删除有序数组中的重复项 慢指针用于统计不重复项,快指针用于不停前进对比是否有新的不重复项,有的话进行替换 class Solutio ......
数组 指针

网络流最大流EK算法

```cpp /* 总的思路就是找还有哪些路可以走,只要找到新的路,流量就增加了 需要注意的是,这里面反向边的含义,可以大致理解为,找路的过程是随机的,可能找到的不是最优的, 那么,加一条反向边,后面就有可能找到这个反向边来走,这样就相当于弥补了以前的错误,相当于走了正确的道路 */ #includ ......
算法 网络

基于PLE结合卡尔曼滤波的RSSI定位算法matlab仿真

1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.算法理论概述 基于PLE(Power-Law Equalizer)结合卡尔曼滤波的RSSI(Received Signal Strength Indicator)定位算法是一种利用无线信号强度进行位置估计的方法。该方法通过PL ......
算法 matlab RSSI PLE

算法~布隆过滤器

布隆过滤器(Bloom Filter)是一种高效的概率数据结构,用于判断一个元素是否存在于集合中。它基于位数组和多个哈希函数,并具有以下特点: Bloom Filter 是一个基于概率的数据结构:它只能告诉我们一个元素绝对不在集合内或可能在集合内 快速查询:布隆过滤器具有快速查询的特性。它使用多个哈 ......
过滤器 算法

AES java加密与MySql加密算法一致

1.背景 数据库加密与java程序加密算法保持一致,统一采用AES加密算法。 2. java 代码如下 1 package com.pacific.permission.test; 2 3 import javax.crypto.Cipher; 4 import javax.crypto.spec. ......
算法 MySql java AES

面试leetcode算法经典 150 题

数组、字符串 1.合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由 ......
算法 leetcode 经典 150

Day10 数组

1. 数组声明 //方法一:首选 dataType[] arrayName; //方法二:非首选,像c++ dataType arrayName[]; 2. 数组创建 2.1 动态初始化 //不初始化,大小自行决定 dataType[] array = new dataType[arraySize] ......
数组 Day 10

算法笔记(2)

树 树(Tree)是一种非线性的数据结构,它由一系列节点(Nodes)组成,每个节点可以包含一个值或者一个操作。树的节点之间存在父子关系,每个节点都有一个父节点和若干个子节点。根节点是整个树的起点,它没有父节点,其他节点都是由根节点衍生出来的。 树有多种类型,以下是其中几种常见的类型: 二叉树(Bi ......
算法 笔记

除自身以外数组的乘积

题解模板 难度 : 简单 | 中等√ | 困难 用时:28分钟(第一次) 作题日期:2023-12-04 ps: 本人理解有限,以下是自我理解,官方和大佬有更完整和详细的解析!!! 题目描述 题目描述给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中 ......
乘积 数组

秦疆的Java课程笔记:55 数组 数组的使用

一些基础用法,其中增强for循环其实就是“For-Each循环” public class ArrayDemo1 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; //打印全部的数组元素 for (int i ......
数组 课程 笔记 Java

秦疆的Java课程笔记:54 数组 下标越界及小结

数组的四个基本特点: 其长度是确定的。数组一旦被创建,他的大小就是不可改变的。 其元素必须是相同类型,不允许出现混合类型。 数组中的元素可以是任何数据类型,包括基本类型和引用类型。 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是 ......
下标 数组 小结 课程 笔记

秦疆的Java课程笔记:53 数组 三种初始化及内存分析

Java内存分析: 当声明数组int[] array = null时,只在栈中存在一个名为array的数组。当创建数组array = new int[3]时,在堆中开辟了一个存在3个int数据的空间。当给元素赋值时,堆中的每一个int类型获得了一个自己的值。 “下标越界异常”报错java.lang. ......
数组 内存 课程 笔记 Java

秦疆的Java课程笔记:51-52 数组 什么是数组&数组的声明和创建

51 什么是数组 数组是入门阶段的最后部分。 数组的定义: 数组是相同类型数据的有序集合。 数组描述的是相同类型的若干数据,按照一定的先后次序排序组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。 52 数组的声明和创建 首先必须声明数组变量,才能在程序中使用数组 ......
数组 课程 笔记 Java amp

代码随想录算法训练营第五天| 242.有效的字母异位词 349. 两个数组的交集 1. 两数之和

LeetCode 242.有效的字母异位词 题目链接: LeetCode242 思路: 使用C++自带的库函数,经过排序后进行比较(使用库函数) class Solution { public: bool isAnagram(string s, string t) { if(s.length() ! ......
随想录 之和 训练营 数组 交集

文心一言 VS 讯飞星火 VS chatgpt (149)-- 算法导论12.2 4题

五、用go语言,证明:如果一棵二叉搜索树中的一个结点有两个孩子,那么它的后继没有左孩子,它的前驱没有右孩子。 灵捷3.5 。 文心一言: 为了证明这个性质,我们首先需要明确二叉搜索树(BST)的定义和特性。一个二叉搜索树是一个有序的树,其中每个节点的左子树上的所有值都小于节点的值,而右子树上的所有值 ......
文心 导论 算法 chatgpt VS

差分数组

一、差分定义和性质 首先差分主要是针对一个数组中的元素进行频繁的增加或删除。假设现在有一个数组nums,现在我要对里面的某个区间的元素全部加2, 然后要对另外一个区间全部减1。一般的思路是直接for循环进行遍历,这样的话时间复杂度是O(n),而我们使用差分数组的话时间复杂度为O(1)。 对于一个数组 ......
数组

基于Levenberg-Marquardt算法的声源定位matlab仿真

1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.算法理论概述 Levenberg-Marquardt 算法是求非线性最小二乘问题的一种优化算法。它在不需要二阶导数信息的情况下,仍然可以取得相当不错的优化效果。它对于具有强非线性性和高维度的问题,尤为适用。 Levenberg ......

树的层序遍历算法框架

1 核心代码框架 点击查看代码 void levelOrder(TreeNode* root) { if (!root) return; queue<TreeNode*> que; que.push(root); while(!que.empty()) { int size = que.size() ......
算法 框架

LeetCode643. 子数组最大平均数I

题目描述 思路:滑动窗口模板 定义需要维护的变量 // 1. 定义需要维护的变量 double sum = 0; double max_avg = Integer.MIN_VALUE; 窗口固定大小为k,所以用if if (end - start + 1 == k) { sum -= nums[st ......
平均数 数组 LeetCode 643

链表算法笔记

​ 类型:单链表、双链表、循环链表 操作:删除节点、添加节点 在删除节点时,C++里最好是再手动释放所删除的节点,释放内存,但是如Java、Python等语言,它们有自己的内存回收机制,就不需要手动释放了。 使用虚拟头节点的原因 使第一个节点和其他节点的增加和删除操作统一,不然每次针对第一个节点还要 ......
算法 笔记

【算法】远方来信,从数学表达式算法到汇编语法解释器

在繁华的都市中,小悦作为一名软件工程师,每天都在这座钢筋水泥的森林里忙碌。她的生活似乎被工作和各种琐碎的事情填满了,但在这个繁忙的生活中,她总能在工作之余找到一些小小的乐趣。 这天下班后,小悦收到了一封来自国外同学苏菲的email。邮件的内容让她的思绪一下子飘回了那个学习汇编语言的大学时代。 苏菲是 ......
算法 解释器 表达式 语法 来信