序列 训练营 数组 随想

数组的算法

数值型数组特征值统计 这里特征值涉及到:平均值,最大值,最小值,总和等 求最大值:将数组第一个元素假设为最大值 int max= arr[0];再然后用写一个判断语句如果数组第一个 元素小于当前比较的元素就把当前比较的元素赋值给max if(max<arr[i]){max = arr[i]} 求最小 ......
数组 算法

3090单卡5小时,每个人都能训练专属ChatGPT,港科大开源LMFlow

前言 拥有自己的 AI 大模型!开源项目 LMFlow 支持上千种模型,提供全流程高效训练方案。 本文转载自机器之心 仅用于学术分享,若侵权请联系删除 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。 CV各大方向专栏与各个部署框架最全教程整理 计算 ......
ChatGPT 小时 LMFlow 3090

C语言初识数组

以以下代码为例:重点在于 定义数组容量 对数组的每个元素循环赋值 遍历数组 1 #include <stdio.h> 2 int main(){ 3 4 int num=0; 5 double sum=0; 6 int cnt=0; 7 scanf("%d",&num); 8 int number[ ......
数组 语言

java基础-序列化和拷贝

1.序列化 1.1.定义 如果我们需要持久化Java对象,或者在⽹络传输Java对象,这些场景都需要⽤到序列化,简单来说序列化就是将数据结构或对象转换成⼆进制字节流的过程,反序列化就是将在序列化过程中所⽣成的⼆进制字节流转换成数据结构或者对象的过程 对于Java这种⾯向对象编程语⾔来说,我们序列化的 ......
序列 拷贝 基础 java

多维数组的使用(一)

多维数组概述 Java 语言里提供了支持多维数组的语法。 如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格,像Excel中的表格、围棋棋盘一样。 应用举例1: 某公司2022年全年各个月份的销售额进行登记。按月份存储,可以使用一维数组。如下: int[] monthData ......
数组

简述如何训练人工智能

训练人工智能的过程可以概括为以下几个步骤: 收集和准备数据:数据是训练人工智能模型的关键。数据可以来自于各种渠道,如传感器、日志、图像、语音、文本等。在收集数据之前,需要定义目标,确定需要什么类型的数据以及需要多少数据才能达到预期的结果。 数据预处理:在使用数据之前,需要进行一些预处理操作,以确保数 ......
人工智能 人工 智能

2610. 转换二维数组

题目链接:2610. 转换二维数组 方法:哈希表 解题思路 统计$nums$中每个元素的数量,然后每行输出其中的$1$个,直到元素全部输出。 代码 class Solution { public: vector<vector<int>> findMatrix(vector<int>& nums) { ......
数组 2610

2607. 使子数组元素和相等

题目链接:2607. 使子数组元素和相等 方法:分组 + gcd + 中位数 解题思路 题意:将$arr$中某个元素$+1$或$-1$,使得任意长度为$k$的子数组的元素总和相等,且总操作数最少; 1、首先考虑数组$arr$为非循环数组: 任意$k$长的子数组总和相等,则有下述情形,依次可以将$ar ......
数组 元素 2607

1092. 最短公共超序列

题目链接:1092. 最短公共超序列 方法一:转换为lcs(最长公共子序列)问题进行求解 解题思路 先得到两个字符串$lcs$,然后再计算$ans$。 $lcs$的获取:最长公共子序列 编辑距离【基础算法精讲 19】 动态规划的$dp$数组在本题有两种实现方式 (1)vector<vector<st ......
序列 1092

剑指 Offer 57 - II. 和为s的连续正数序列

题目链接:剑指 Offer 57 - II. 和为s的连续正数序列 方法一:同向双指针 解题思路 使用两个双指针维护一个窗口,设窗口中元素的和为$curSum$。当$curSum > target$时,左指针右移一位;当$curSum < target$时,右指针右移一位;当$curSum == t ......
正数 序列 Offer 57 II

2605. 从两个数字数组里生成最小数字

题目链接:2605. 从两个数字数组里生成最小数字 方法:哈希 解题思路 本题有两种情况: 两个数组有共同元素,则取其中最小值返回; 两个数组没有共同元素,则取两个数组中各自的最小元素组成最小的两位数返回。 代码 class Solution { public: int minNumber(vect ......
数字 数组 两个 2605

剑指 Offer 56 - I. 数组中数字出现的次数

题目链接:剑指 Offer 56 - I. 数组中数字出现的次数 方法:位运算 + 分类 解题思路 异或运算:当两个相同的数异或时,结果为$0$; 对于本题,假设答案为$res1$ 和 $res2$,那么对数组中所有的数求异或时,其结果实际等于 $res1$ ^ $res2$;并且此结果中二进制位为 ......
数组 次数 数字 Offer 56

剑指 Offer 56 - II. 数组中数字出现的次数 II

题目链接:剑指 Offer 56 - II. 数组中数字出现的次数 II 方法一:位运算 解题思路 由题意知,其他数值都出现了三次,那么其数值二进制位上的$1$也至少出现了三次,那么我们可以统计数值每一位上$1$的个数的总和,然后遍历每一位上$1$的数量,若某一位上的$1$的数量不能被$3$整除,说 ......
数组 次数 数字 Offer II

6357. 使数组元素全部相等的最少操作次数

题目链接:6357. 使数组元素全部相等的最少操作次数 方法:排序 + 前缀和 + 二分查找 解题思路 初始化$target = queries[i]$,根据题意,对于每次询问要将数组$nums$中的元素$=>target$,那么对于小于等于$target$的元素要加上一个数,而大于$target$ ......
数组 元素 次数 6357

1574. 删除最短的子数组使剩余数组有序

题目链接:1574. 删除最短的子数组使剩余数组有序 方法:双指针 + 找规律 解题思路 去除子数组的可能情况: 将第一个递减序列的左端点到末尾的子数组去掉; 将最后一个递减序列的右端点到起点的子数组去掉; 左端点:起点 和 第一个递减序列的左端点之间取, 右端点:最后一个递减序列的右端点和末尾之间 ......
数组 1574

剑指 Offer 44. 数字序列中某一位的数字

题目链接:剑指 Offer 44. 数字序列中某一位的数字 方法:找规律 解题思路 找第$n$位对应的数为几位数; 找该数的具体值; 找第$n$位在该数中的第几位。 {:style="width:500px"} 代码 class Solution { public: int findNthDigit ......
数字 序列 Offer 44

剑指 Offer 42. 连续子数组的最大和

题目链接:剑指 Offer 42. 连续子数组的最大和 方法:动态规划 解题思路 参考动态规划详细解析——剑指 Offer 42. 连续子数组的最大和 注意: 很多同学首先会想到同向双指针,实际上本题由于$nums$数组的某一个元素的下一个元素可正可负,导致同向双指针要求的单调性无法满足; 使用$d ......
数组 Offer 42

剑指 Offer 37. 序列化二叉树

题目链接:剑指 Offer 37. 序列化二叉树 取巧做法 class Codec { private: TreeNode* root; public: // Encodes a tree to a single string. string serialize(TreeNode* root) { ......
序列 Offer 37

2389. 和有限的最长子序列

题目链接:2389. 和有限的最长子序列 方法:前缀和 + 二分查找 解题思路 根据题意,子序列与$nums$数组的元素顺序无关,因此可以先对$nums$从小到大排序,并计算前缀和$nums[i] += nums[i - 1]$,此时的$nums[i]$表示原来nums数组$[0, i]$的区间和。 ......
序列 有限 2389

剑指 Offer 33. 二叉搜索树的后序遍历序列

题目链接:剑指 Offer 33. 二叉搜索树的后序遍历序列 方法:分治 解题思路 首先假设该序列能够构成某个二叉搜索树的后序遍历序列,那么这个序列会被分成3个部分:左子树序列,右子树序列,父节点,其中左右子树节点数可能为0; 现在就可以检查该序列是否符合这个规律,然后递归的判断子树是否符合规律。 ......
序列 Offer 33

2488. 统计中位数为 K 的子数组

题目链接:2488. 统计中位数为 K 的子数组 方法:前缀和 + 哈希 解题思路 根据题意可知,在$k$是中位数的子数组中,比$k$大的数 $-$ 比$k$小的数 $=$ $0$ || $1$。那么将两种状态,小于$k$置$-1$,大于$k$置$+1$,计算数组的前缀和$s$。 由于子数组要包含$ ......
中位数 数组 2488

剑指 Offer 51. 数组中的逆序对

题目链接:剑指 Offer 51. 数组中的逆序对 方法一:归并排序 解题思路 逆序对:即后面的数大于前面的数; 归并排序: 先分,在此过程中会先递归的将序列分为一段一段序列,并且每段序列之间的先后顺序是不变的。 再治,也即归并,归并的过程中会将两段序列进行比较$(A,B,B在A的后面)$,当出现$ ......
逆序 数组 Offer 51

108. 将有序数组转换为二叉搜索树

题目链接:108. 将有序数组转换为二叉搜索树 方法:递归建树 解题思路 每次选取中间的元素作为根节点,递归创建左右子树,就可以保证左右子树的高度差绝对值不超过1 代码 /** * Definition for a binary tree node. * struct TreeNode { * in ......
数组 108

1590. 使数组和能被 P 整除

题目链接:1590. 使数组和能被 P 整除 方法:前缀和 + 哈希 解题思路 (1)要求$(sum - sunSum)$ % $p = 0$,即要求 $[sum - (s[j] - s[i])]$ % $p = 0$, 即 $sum$ % $p = (s[j] - s[i])$ % $p$,即 $ ......
数组 1590

二维数组

在刷力扣题目是会遇到这种情况 int** generate(int numRows, int* returnSize, int** returnColumnSizes){ } int numRows:表示这传入的是一个数。 int* returnSize:表示这传入的是一个数的地址。 int** r ......
数组

自定义序列化器类

@Serialization 是一个自定义装饰器,通常用于序列化 Python 对象。 使用 @Serialization 装饰器可以将一个类转换为可序列化的对象,这样就可以将其存储到文件或通过网络传输。 下面是一个使用 @Serialization 装饰器的示例: import json def ......
序列

SYUCTACM2023 bfs训练题解

迷宫 #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 10; const int mod = 1e9 + 7; char s[105][105]; int vis[105][105]; int dx[4] = {1, ......
题解 SYUCTACM 2023 bfs

1144. 递减元素使数组呈锯齿状

题目链接:1144. 递减元素使数组呈锯齿状 方法:找规律 + 模拟 解题思路 对于一个整数数组 $nums$,可以转换为题目中两种锯齿数组,对于两种情况的转换取最小值。 并且由于操作只能将一个元素减1,因此: 对于第1种情况,只用下标为奇数的元素需要减小到比两边最小值小1; 对于第2种情况,只用下 ......
锯齿状 锯齿 数组 元素 1144

数组扁平化

var arr = [ { id: 1, title: '我是1目录', children: [ { id: 11, title: '我是1-1目录', children: [ { id: 111, title: '我是1-1-1目录', children: [] } ] }, { id: 12, ......
扁平 数组

【Java】数组

数组是编程语言中常见的数据结构,用来存储一组相同数据类型的数据,可以通过整型索引访问数组中的每一个值。需要注意,同一个数组中存储的所有元素的数据类型必须相同。 根据数组存放元素的组织结构,可将数组分为一维数组、二维数组以及多维(三维及以上)。 创建数组: data_type[ ]varName; d ......
数组 Java