当前位置: 首页 > news >正文

【代码随想录】算法训练计划02

1、977. 有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
输入:nums = [-4,-1,0,3,10]
输出:[0,1,9,16,100]

思路:

这题思路在于——双指针思想

  • 简单说就是双指针,左右指针指最外边,谁大放最后边
  • 注意条件:i<=j,因为这个元素也要算,加入新数组
// 代码一刷----双指针
func sortedSquares(nums []int) []int {res := make([]int, len(nums))k := len(nums)-1for i,j := 0, len(nums)-1; i<=j; {if nums[i]*nums[i] > nums[j]*nums[j] {res[k] = nums[i]*nums[i]i++k--} else {res[k] = nums[j]*nums[j]j--k--}}return res
}

2、209. 长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。

思路:
  • 滑动窗口,但本质还是双指针法
  • j 代表的是终止位置,一旦 sum>=target 就记录最小长度,并把起始位置前移一位
// 代码一刷——双指针——滑动窗口思想
func minSubArrayLen(target int, nums []int) int {res,sum := 10000000, 0for i,j := 0,0; j<len(nums); j++ {sum += nums[j]for sum >= target {res = min(res, j-i+1)sum -= nums[i]i++}}if res == 10000000 {return 0}return res
}
func min(a,b int) int { if a>b {return b}; return a }

3、59. 螺旋矩阵 II

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
在这里插入图片描述
输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]

思路:
  • 这题就是模拟,判断边界条件
  • 注意左闭右开法则,保持统一性即可
  • 循环次数就是 n/2,如果 n 是奇数就要 center 一下
  • 这次写,忘了 i, j := startx, starty 放在循环里边
  • 除了 res 外,初始化五个变量,startx,y,offset,count,center
// 代码一刷,循环不变狼——左闭右开规则
func generateMatrix(n int) [][]int {res := make([][]int, n)for i:=0; i<n; i++ {res[i] = make([]int, n)}startx,starty := 0,0offset, count := 1,1center := n/2// 开始算法for k:=0; k<n/2; k++ {i, j := startx, startyfor ;j<n-offset; j++ {res[startx][j] = countcount++}for ;i<n-offset; i++ {res[i][j] = countcount++}for ; j>startx ; j-- {res[i][j] = countcount++}for ; i>starty ; i-- {res[i][j] = countcount++}offset++startx++starty++}if n%2 != 0 {res[center][center] = count}return res
}

相关文章:

【代码随想录】算法训练计划02

1、977. 有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 输入&#xff1a;nums [-4,-1,0,3,10] 输出&#xff1a;[0,1,9,16,100] 思路&#xff1a; 这题思路在于——双指针…...

hive针对带有特殊字符非法json数据解析

一、背景 有的时候前端或者后端进行埋点日志&#xff0c;会把json里面的数据再加上双引号&#xff0c;或者特殊字符&#xff0c;在落日志的时候&#xff0c;组装的格式就不是正常的json数据了&#xff0c;我们就需要将带有特殊字符的json数据解析成正常的json数据。 二、正则…...

【C++进阶之路】第三篇:二叉搜索树 kv模型

文章目录 一、二叉搜索树1.二叉搜索树概念2.二叉搜索树操作3.二叉搜索树的实现 二、二叉搜索树的应用1.kv模型2.kv模型的实现 三、 二叉搜索树的性能分析 一、二叉搜索树 1.二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性…...

【Oracle】Navicat Premium 连接 Oracle的两种方式

Navicat Premium 使用版本说明 Navicat Premium 版本 11.2.16 (64-bit) 一、配置OCI 1.1 配置OCI环境变量 1.1.2 设置\高级系统设置 1.1.2 系统属性\高级\环境变量(N) 1.1.3 修改/添加系统变量 ORACLE_HOME ORACLE_HOME D:\app\root\product\12.1.0\dbhome_11.1.4 添加系…...

在python里如何实现switch函数的功能

在许多编程语言中&#xff0c;包括Python&#xff0c;都提供了switch语句或类似的功能来根据不同的条件执行不同的代码块。然而&#xff0c;Python本身并没有内置的switch语句&#xff0c;但是您可以使用其他方式来实现类似的功能。下面是一种常见的方法&#xff1a; 使用if-e…...

Python 继承和子类示例:从 Person 到 Student 的演示

继承允许我们定义一个类&#xff0c;该类继承另一个类的所有方法和属性。父类是被继承的类&#xff0c;也叫做基类。子类是从另一个类继承的类&#xff0c;也叫做派生类。 创建一个父类 任何类都可以成为父类&#xff0c;因此语法与创建任何其他类相同&#xff1a; 示例&…...

DevOps持续集成-Jenkins(3)

文章目录 DevOpsDevOps概述Jenkins实战3&#xff1a;实战1和实战2的加强版&#xff08;新增SonarQube和Harbor&#xff09;⭐环境准备⭐项目架构图对比Jenkins实战1和实战2&#xff0c;新增内容有哪些&#xff1f;SonarQube教程采用Docker安装SonarQube &#xff08;在Jenkins所…...

TypeScript之索引签名

1. 索引签名 在 TypeScript 中&#xff0c;索引签名是一种定义对象类型的方式&#xff0c;它允许我们使用字符串或数字作为索引来访问对象的属性。 索引签名最主要的作用就是允许我们动态地添加或访问对象的属性&#xff0c;通过使用索引签名&#xff0c;我们可以在编译时无法…...

k8s-----24、亲和力Affinity

1、应用场景 pod和节点间的关系&#xff1a; 某些Pod优先选择有ssdtrue标签的节点&#xff0c;如果没有在考虑部署到其它节点;某些Pod需要部署在ssdtrue和typephysical的节点上&#xff0c;但是优先部署在ssdtrue的节点上; pod和pod间的关系&#xff1a; 同一个应用的Pod不…...

860. 柠檬水找零

在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品&#xff0c;&#xff08;按账单 bills 支付的顺序&#xff09;一次购买一杯。 每位顾客只买一杯柠檬水&#xff0c;然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零&#xff0c;…...

Flink将数据写入MySQL(JDBC)

一、写在前面 在实际的生产环境中&#xff0c;我们经常会把Flink处理的数据写入MySQL、Doris等数据库中&#xff0c;下面以MySQL为例&#xff0c;使用JDBC的方式将Flink的数据实时数据写入MySQL。 二、代码示例 2.1 版本说明 <flink.version>1.14.6</flink.version…...

react-typescript-demo

1.使用 Context 来存储数据...

Alexon:在云原生环境中快速部署应用服务

Alexon是一个旨在快速部署WEB应用服务到分布式系统中的工具&#xff0c;适用于云原生环境。 Alexon由SymeCloud Limited(syme.dev) 发布&#xff0c;使用GNU Guile编写而成&#xff0c;支持函数编程概念。 SymeCloud 公司主要致力于 AI-Infra 方面的研发&#xff0c;从 OpenAI …...

5G技术在职业教育领域的应用:产生巨变的技术

5G技术在职业教育领域的应用&#xff1a;产生巨变的技术 职业教育领域正面临着前所未有的挑战和机遇。随着5G技术的快速发展和普及&#xff0c;其高速度、低延迟、大容量和连接数的特性给职业教育带来了革命性的改变。本文将深入探讨5G技术在职业教育领域的应用场景、技术原理和…...

【触想智能】工控一体机与5G物联网技术结合是未来发展趋势

工控一体机也叫工业电脑一体机&#xff0c;是工业应用非常重要的一种产品。目前&#xff0c;工控一体机在工业领域的应用已经非常普及&#xff0c;在繁忙的生产车间、数字化机床、自助服务终端设备等场景中&#xff0c;我们都有看到它的身影。 工控一体机应用的普及已经潜移默化…...

LuatOS-SOC接口文档(air780E)--lvgl - LVGL图像库

lvgl.draw_mask_radius_param_t() 创建一个lv_draw_mask_radius_param_t 参数 无 返回值 返回值类型 解释 userdata lv_draw_mask_radius_param_t指针 例子 local radius lvgl.draw_mask_radius_param_t()lvgl.draw_mask_radius_param_t_free(radius) 释放一个lv_d…...

LuatOS-SOC接口文档(air780E)--lora2 - lora2驱动模块(支持多挂)

常量 常量 类型 解释 lora2.SLEEP number SLEEP模式 lora2.STANDBY number STANDBY模式 lora2.init(ic, loraconfig,spiconfig) lora初始化 参数 传入值类型 解释 string lora 型号&#xff0c;当前支持&#xff1a; llcc68 sx1268 table lora配置参数,与具体…...

WKWebView iOS17设置UserAgent

WKWebView 设置 user-agent 参考文档 之前设置 user-agent 都是通过设置NSUserDefaults来实现的&#xff0c;不过升级到了iOS17之后这个方式不好用了。 老的设置方式&#xff1a; [[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];目前看通过设置 we…...

持续集成部署-k8s-服务发现-Service

持续集成部署-k8s-服务发现-Service:配置讲解及基础命令 1. Service 简介2. 基础命令3. 基于 Service 访问外部服务4. 代理外部域名5. Endpoints 常用类型1. Service 简介 在K8s中,Service 是一种可以暴露一个或多个Pod的稳定的网络终点,从而形成逻辑上的应用服务单元,为服…...

RocksDB基本架构与原理详解

Rocksdb Flink提供基于流的有状态计算&#xff0c;除了提供实时数据流的处理能力&#xff0c;还需要将计算产生的状态存储起来。 为了满足状态存取需求&#xff0c;提供了memory、flie system、rocksdb三种类型的状态存储机制。 memory存取高效单空间有限&#xff0c;且可用…...

大模型时代:TranslateGemma在AI翻译领域的突破

大模型时代&#xff1a;TranslateGemma在AI翻译领域的突破 在机器翻译领域&#xff0c;我们正见证着一个激动人心的转折点。传统翻译工具往往在专业术语、文化语境和语言细微差别面前显得力不从心&#xff0c;而新一代大模型正在彻底改变这一局面。TranslateGemma作为基于Gemm…...

SQL检查开发提效:sql-lint让数据库操作更可靠

SQL检查开发提效&#xff1a;sql-lint让数据库操作更可靠 【免费下载链接】sql-lint An SQL linter 项目地址: https://gitcode.com/gh_mirrors/sq/sql-lint 当你在深夜排查线上SQL错误时&#xff0c;当团队因SQL风格不统一争论时&#xff0c;当执行DELETE语句忘记WHERE…...

3秒定位文件:Linux文件搜索效率提升10倍的秘密武器

3秒定位文件&#xff1a;Linux文件搜索效率提升10倍的秘密武器 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 在Linux系统中&#xff0c;文件搜索往往是效率瓶颈的重…...

e1547:如何构建高效的内容过滤与社区浏览体验

e1547&#xff1a;如何构建高效的内容过滤与社区浏览体验 【免费下载链接】e1547 A sophisticated e621 browser 项目地址: https://gitcode.com/gh_mirrors/e1/e1547 在当今数字内容爆炸的时代&#xff0c;用户面临着信息过载的挑战&#xff0c;尤其是在兴趣社区中&…...

PP-DocLayoutV3部署实操:Linux环境权限配置+start.sh执行问题解决

PP-DocLayoutV3部署实操&#xff1a;Linux环境权限配置start.sh执行问题解决 1. 项目概述与核心价值 PP-DocLayoutV3是一个专门用于处理非平面文档图像的布局分析模型&#xff0c;能够智能识别文档中的各种元素布局。与传统的矩形框检测不同&#xff0c;它支持多点边界框预测…...

从湖科大计网笔记出发,聊聊我当年学网络时踩过的那些坑(附避坑指南)

从湖科大计网笔记出发&#xff1a;一位工程师的避坑实战指南 1. 那些年我掉进的TCP/IP陷阱 第一次接触TCP三次握手时&#xff0c;我天真地以为这就像打电话的"喂-喂-好"那么简单。直到期末考试时被问到"为什么不能两次握手&#xff1f;"&#xff0c;我才意…...

从 MSYS2 环境中提取独立 MinGW-w64 工具链的技术方案

提取包下载&#xff1a;作者主页资源 一、问题背景 在配置 Windows 平台 C/C 开发环境时&#xff0c;开发者可能误将 MSYS2 完整环境当作 MinGW-w64 编译器套件下载安装。MSYS2 是一个集成了 Pacman 包管理器的 Unix-like 开发环境&#xff0c;其内部包含了完整的 MinGW-w64 工…...

VideoAgentTrek Screen Filter作品集:处理前后对比展示多行业应用效果

VideoAgentTrek Screen Filter作品集&#xff1a;处理前后对比展示多行业应用效果 最近在整理一些屏幕录像素材时&#xff0c;我发现了一个挺有意思的工具——VideoAgentTrek Screen Filter。它不是什么复杂的视频编辑软件&#xff0c;核心功能很聚焦&#xff1a;自动识别并处…...

Visual Studio快捷键全攻略:提升编码效率的必备技巧

1. Visual Studio快捷键&#xff1a;程序员的效率加速器 第一次用Visual Studio写代码时&#xff0c;我像个无头苍蝇一样在菜单栏里到处找功能。直到同事看我操作实在忍无可忍&#xff0c;甩给我一份快捷键清单——那天我才知道&#xff0c;原来按F5就能直接调试&#xff0c;Ct…...

深入解析Xil_DCacheFlushRange在Zynq SoC中的缓存一致性应用

1. 为什么Zynq开发者需要关注Xil_DCacheFlushRange 第一次在Zynq平台上做DMA数据传输时&#xff0c;我遇到了一个诡异现象&#xff1a;PL端明明收到了数据&#xff0c;但处理结果总是错乱。调试三天后才发现&#xff0c;问题出在PS端的缓存数据没有及时同步到主存。这个经历让…...