差分数组
差分数组是一种与前缀和思想相似的算法技巧,主要用于频繁对原始数组的某个区间元素进行增减操作的场景。 核心应用场景 当需要多次对数组的特定区间进行加减操作时,常规的思路很容易,你让我给区间 nums[i..j] 加上 val,那我就一个 for 循环给它们都加上呗,还能咋样?这种思路的时间复杂度是 O(N)O(N),由于这个场景下对 nums 的修改非常频繁,所以效率会很低下。 这里就需要差分数组的技巧,类似前缀和技巧构造的 preSum 数组,我们先对 nums 数组构造一个 diff 差分数组,diff[i] 就是 nums[i] 和 nums[i-1] 之差:使用差分数组可以大大提高效率。 差分数组通过记录相邻元素的差值来构建,这样对原数组某个区间的批量操作,在差分数组中只需要修改两个位置的值即可完成。 12345int diff[nums.size()]; // 构造差分数组 diff[0] = nums[0]; for (int i = 1; i < nums.size(); i++) { diff[i] = nums[i] - nums[i -...
前缀和数组
一维矩阵中的前缀和 例题 给定一个整数数组 nums,处理以下类型的多个查询: 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left <= right 实现 NumArray 类: NumArray(int[] nums) 使用数组 nums 初始化对象 int sumRange(int i, int j) 返回数组 nums 中索引 left 和 right 之间的元素的 总和 ,包含 left 和 right 两点(也就是 nums[left] + nums[left + 1] + ... + nums[right] ) 示例 1: 输入: [“NumArray”, “sumRange”, “sumRange”, “sumRange”] [[[-2, 0, 3, -5, 2, -1]], [0, 2], [2, 5], [0, 5]] 输出: [null, 1, -1, -3] 解释: NumArray numArray = new NumArray([-2, 0, 3, -5, 2,...
3370.仅含置位位的最小整数
仅含置位位的最小整数 给你一个正整数 n。 返回 大于等于 n 且二进制表示仅包含 置位 位的 最小 整数 x 。 置位 位指的是二进制表示中值为 1 的位。 示例 1: 输入: n = 5 输出: 7 解释: 7 的二进制表示是 "111"。 示例 2: 输入: n = 10 输出: 15 解释: 15 的二进制表示是 "1111"。 示例 3: 输入: n = 3 输出: 3 解释: 3 的二进制表示是 "11"。 提示: 1 <= n <= 1000 思路 首先找到这个数的二进制位数,然后把不为1的位变成1就行了 bit_width 函数可以找到一个数的位数,但是bit_width() 函数只接受无符号整数类型作为参数,不接受有符号整数。如果 n 是 int 类型(有符号),直接调用 bit_width(n) 会编译错误。 然后找到大于这个数的最大的2的指数,再减一就行了。 代码 1234567891011class Solution {public: int...
线性回归
从房价预测理解线性回归 现实场景 假设我们想要预测一套房子的价格,我们知道房价通常与房屋面积密切相关。一般来说: 面积越大的房子,价格越高 面积越小的房子,价格越低 数据观察 我们收集了一些历史数据: 房屋面积(㎡) 价格(万元) 60 120 80 160 100 200 120 240 140 280 建立线性关系 从数据中我们可以发现一个规律: 价格=2×面积价格 = 2 \times 面积 价格=2×面积 这就是一个最简单的线性回归模型: y=wx+by = wx + b y=wx+b 其中: yyy:要预测的目标变量(房价) xxx:特征变量(房屋面积) www:权重系数(每平米价格) bbb:偏置项(基础价格) 扩展到多特征 现实中,房价不仅取决于面积,还受其他因素影响: 卧室数量 地理位置 房龄 周边设施 是不是有两个卫生间~ 这时就需要多元线性回归: y=w1x1+w2x2+...+wnxn+b∗y = w_1x_1 + w_2x_2 + ... + w_nx_n +...
深度学习资源推荐
Mikoto10032/DeepLearning: 深度学习入门教程, 优秀文章, Deep Learning Tutorial 序 - aiTour
超算互联网(SCNet)使用教程
1.超算互联网网址 超算互联网 2.算力租用 登录后点击控制台,并选择notebook进行创建 页面展示了能够提供的显卡,目前可以使用4090,L20,A800,建议大家选择L20,性能不错切性价比高。 3.开发镜像 选择好了算力后需要为所租用的算计进行开发环境的搭建 镜像的意思就是提前帮你下载搭建好相应的环境,感兴趣的同学也可以探索其他镜像,如大模型相关训练,这里只介绍Pytorch相关环境搭建 我选择的镜像是比较稳定的版本,选择好后点击创建 4.使用方法 目前这个状态即为创建好环境并正在运行 点击Jupyterlab进行进一步使用,大家也可以通过ssh远程连接vscode,pycharm等IDE,这里不做介绍,有兴趣可以参考VSCode远程连接AutoDL服务器详细教程_vscode+ssh+autodl-CSDN博客 大家注意个人文件请存放在private...
Jupyter Notebook入门教程
Jupyter Notebook入门教程 1. 安装与配置 1.1 Jupyter参考网址 Jupyter官方网址 IPython官方网址 配套notebook文件下载 ,下载解压notebook.zip文件,在notebook目录下打开jupyter notebook。 1.2 安装Jupyter 打开Anaconda的命令提示窗口,创建新的虚拟环境 1conda create -n env_name python=3.8 scikit-image=0.18 -y 12# 查看新环境是否已经创建成功conda env list 安装Jupyter 1234# 进入新创建的环境conda activate env_name# 安装Jupyterpip install jupyter - 输入jupyter notebook即可在浏览器中自动打开notebook - 如果我们想新建一个notebook,并且使用当前新建的环境时,我们发现没有当前新建环境的...
Anaconda + Pytorch 安装教程
安装流程 1.安装 Anaconda 2.创建 机器学习 环境 3.检查显卡,更新驱动 4.配置清华云 镜像源 5.安装pytorch 6.测试 7.CUDA核心 1.安装Anaconda https://www.anaconda.com/download/ 直接默认下一步即可 装完之后 按win在“所有应用”中找到Anaconda Prompt 出现(base)表示成功 2.创建pytorch环境 这里面输入python可以看到安装的python版本号,我的是python3.10然后输入exit()回车就好。 创建pytorch虚拟环境,pytorch是环境变量的名字,python=3.10即是之前自己系统python版本。(注意这里的python版本要和自己的版本相同,我的是python3.10) conda create -n pytorch python=3.10 到这里按y即可 出现这个界面就表示成功了 我们输入activate...
本网站搭建过程
数学公式显示问题 最近写了一些深度学习的笔记,发现hexo本身不支持obsidian的公式语法,于是在网络上寻找解决方案。 hexo next主题解决无法显示数学公式_hexo博客公式不显示-CSDN博客 按照这个教程修改后发现依旧存在问题,核心原因是 错误来源: hexo-renderer-kramed 插件。 具体原因: 在 node_modules\kramed\lib\rules\inline.js 文件中,解析器遇到了一个 SyntaxError: Unexpected identifier 'autolink'。 深层原因: 这是因为 kramed 库(hexo-renderer-kramed 的依赖)在其老版本中,使用了某些在 旧版本 Node.js 中不被支持的 JavaScript 语法特性,或者更常见的是,这个旧库不支持当前使用的较新的 Node.js 版本(例如 Node 18 或更高版本)。