轮转数组(每日一题)
“路虽远,行则将至”
❤️主页:小赛毛
☕今日份刷题:轮转数组
题目链接:轮转数组
题目描述:
给定一个整数数组
nums,将数组中的元素向右轮转k个位置,其中k是非负数。示例1:
输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4]示例2
输入:nums = [-1,-100,3,99], k = 2 输出:[3,99,-1,-100] 解释: 向右轮转 1 步: [99,-1,-100,3] 向右轮转 2 步: [3,99,-1,-100]
题解:
方法1:
如:
[1,2,3,4,5,6,7]|| [7,6,5,4,3,2,1] 挪动一个数据 右旋一次 合计右旋k次
- 时间复杂度:
O(K*N)or O(N^2)- 空间复杂度:O(1)
方法2:
(空间换时间)
如:
[1,2,3,4,5,6,7] k = 3|| (直接把后k个copy过来) [5,6,7]|| (再把前n-k个copy到后面) [5,6,7,1,2,3,4]
- 时间复杂度:O(N)
- 空间复杂度:O(N)
方法3:
如:
[1,2,3,4,5,6,7] k = 3|| (前n-k个逆置) [4,3,2,1,5,6,7]|| (后k个逆置) [4,3,2,1,7,6,5]|| (整体逆置) [5,6,7,1,2,3,4]
- 时间复杂度:O(N)
- 空间复杂度:O(1)
由于第三种方法可能没有那么容易思考到,所以我们这里只简单操作一下第二种方法:
代码:
void rotate(int* nums, int numsSize, int k){int*tmp=(int*)malloc(sizeof(int)*numsSize);int n=numsSize;k%=n;memcpy(tmp,nums+n-k,sizeof(int)*k);memcpy(tmp+k,nums,sizeof(int)*(n-k));memcpy(nums,tmp,sizeof(int)*(n));free(tmp);
}
相关文章:
轮转数组(每日一题)
“路虽远,行则将至” ❤️主页:小赛毛 ☕今日份刷题:轮转数组 题目链接:轮转数组 题目描述: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例1: 输入…...
jmeter使用步骤
jmeter 使用步骤 1,进入jmeter目录中的bin目录,双击jmeter.bat 打开 2,右键test plan 创建线程组 3,配置线程组参数 4,右键刚刚创建的线程组,创建请求,填写请求地址 5,需要携带to…...
Ts中泛型的理解与使用
一、什么是泛型 在定义函数,定义接口或定义class类的时候,不先规定其类型,在使用的时候进行定义类型。 二、使用 1、定义函数: // 函数类型 function AA<T>(arg:T):T{return arg } AA<number>(1) AA<string>…...
uniapp使用eatchs雷达图
引入插件 <template><view class"page"><view class"AllBox"><view class"topTit">标题</view><view class"leftTit">对比分析</view><view class"tableBox"><view cl…...
PostgreSQL jsonb
PostgreSQL jsonb jsonb 函数以及操作符 在PostgreSQL中,有许多用于处理JSONB数据类型的内置函数和操作符。下面列出了一些常用的JSONB函数和操作符: jsonb_pretty(jsonb) 该函数将JSONB数据格式化为易读的多行字符串。jsonb_typeof(jsonb) 该函数返回…...
Spring系列四:AOP切面编程
文章目录 💗AOP-官方文档🍝AOP 讲解🍝AOP APIs 💗动态代理🍝初始动态代理🍝动态代理深入🍝AOP问题提出📗使用土方法解决📗 对土方法解耦-开发最简单的AOP类📗…...
VS+Qt+C++旅游景区地图导航源码实例
程序示例精选 VSQtC旅游景区地图导航 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对<<VSQtC旅游景区地图导航>>编写代码,代码整洁,规则,易读。…...
回调函数和一般函数的区别
回调函数:不是我能控制的,通过外界信号触发调用,例如下面是chatter 一般函数:我能控制的,顺序调用...
使用vite创建Vue/React前端项目,配置@别名和Sass样式,又快又方便
Vite官方网站:Vite | 下一代的前端工具链 Vite 并不是基于 Webpack 的,它有自己的开发服务器,利用浏览器中的原生 ES 模块。这种架构使得 Vite 比 Webpack 的开发服务器快了好几个数量级。Vite 采用 Rollup 进行构建,速度也更快…...
从前序与中序遍历序列构造二叉树,从中序与后序遍历序列构造二叉树
目录 从前序与中序遍历序列构造二叉树从中序与后序遍历序列构造二叉树 从前序与中序遍历序列构造二叉树 题目链接 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返…...
【JS常见数据结构】
JS数据结构 前言数组JavaScript 中数组的常见操作:1. 创建数组:2. 访问数组元素:3. 插入元素:4. 删除元素:5. 查询元素: 链表单向链表双向链表循环链表 栈队列树二叉树示例 图图的定义图的分类图的表示方法…...
算法基础之插入排序
1、插入排序基本思想 插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序)&a…...
InfoQ 分享
...
Jupyter Notebook 遇上 NebulaGraph,可视化探索图数据库
在之前的《手把手教你用 NebulaGraph AI 全家桶跑图算法》中,除了介绍了 ngai 这个小工具之外,还提到了一件事有了 Jupyter Notebook 插件: https://github.com/wey-gu/ipython-ngql,可以更便捷地操作 NebulaGraph。 本文就手把手教你咋在 J…...
人类与机器的分类不同
分类能力也是智能的重要标识之一。通过分类,我们可以将事物或概念进行归类和组织,从而更好地理解和处理信息。分类在人类认知和智能发展中起到了重要的作用,它有助于我们对世界进行认知、记忆、推理和决策。在机器智能领域,分类同…...
WEB安全-SQL注入,CSRF跨站伪造,OXX跨站脚本
SQL 注入攻击 SQL 注入是一种网络攻击手段,攻击者通过在 Web 应用程序的输入字段中插入恶意 SQL 代码,试图访问、篡改或删除数据库中的数据。这种攻击通常发生在应用程序未对用户输入进行充分验证或过滤的情况下。 举个例子,例如,…...
【HDFS】客户端读某个块时,如何对块的各个副本进行网络距离排序?
本文包含如下内容: ① 通过图解+源码分析/A1/B1/node1和 /A1/B2/node2 这两个节点的网络距离怎么算出来的 ② 客户端读文件时,副本的优先级。(怎么排序的,排序规则都有哪些?) ③ 我们集群发现的一个问题。 客户端读时,通过调用getBlockLocations RPC 获取文件的各个块。…...
【数字化处理】仿生假体控制中肌电信号的数字化处理研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
谷歌推出Flax:JAX的神经网络库
在优化理论中,损失或成本函数测量拟合或预测值与实际值之间的距离。对于大多数机器学习模型,提高性能意味着最小化损失函数。 但对于深度神经网络,执行梯度下降以最小化每个参数的损失函数可能会消耗大量资源。传统方法包括手动推导和编码&a…...
PDF换行的难度,谁能解决?
换行的时候确认不了长度: import java.awt.*;public class Test {public static void main(String[] args) {String str1 "淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘";String str2 "AAAAAAAAAAAAAAAAAAAAAAAAA…...
终极解放双手:淘宝淘金币全任务自动化脚本完全指南
终极解放双手:淘宝淘金币全任务自动化脚本完全指南 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 在这个数…...
原子制造:从单原子操控到新材料创制的技术原理与应用
1. 原子制造:从宏观“锤子”到微观“镊子”的范式革命我们常说,人类文明史是一部材料史。从打磨石器的旧石器时代,到熔铸青铜的青铜时代,再到锻造钢铁的工业时代,每一次文明的跃迁,都伴随着我们对物质操控能…...
RX65N嵌入式开发实战:从硬件设计到外设驱动与调试
1. 项目概述:为什么选择RX65N作为嵌入式开发的起点?在嵌入式开发领域,选择一个合适的微控制器(MCU)作为学习和项目实践的起点至关重要。它既要功能足够强大以覆盖主流应用场景,又要有完善的生态支持&#x…...
STM32F103标准库下,DAC的三种触发方式(软件、自动、定时器+DMA)到底该怎么选?
STM32F103标准库下DAC触发方式深度解析:从单次输出到精密波形生成 在嵌入式系统开发中,数字模拟转换器(DAC)是实现数字信号到模拟信号转换的关键模块。STM32F103系列微控制器内置的12位DAC模块提供了三种不同的触发方式࿱…...
在华为擎云L420上从源码编译ARM GCC 10.3,为Betaflight开发铺路
在华为擎云L420上构建ARM GCC 10.3工具链:Betaflight开发环境实战指南 当国产化硬件遇上开源飞控开发,技术探索的边界正在被不断拓展。华为擎云L420作为一款基于ARM64架构的笔记本电脑,为开发者提供了在国产平台上进行嵌入式开发的独特机会。…...
颠覆性AI 3D建模:Zoo Text-to-CAD技术将设计效率提升10倍
颠覆性AI 3D建模:Zoo Text-to-CAD技术将设计效率提升10倍 【免费下载链接】text-to-cad-ui A lightweight UI for interacting with the Zoo Text-to-CAD API. 项目地址: https://gitcode.com/gh_mirrors/te/text-to-cad-ui 在机械设计与工程制造领域&#x…...
RustRedOps加密技术实战:AES和RC4算法在shellcode保护中的应用
RustRedOps加密技术实战:AES和RC4算法在shellcode保护中的应用 【免费下载链接】RustRedOps RustRedOps is a repository for advanced Red Team techniques focused on Rust 项目地址: https://gitcode.com/gh_mirrors/ru/RustRedOps RustRedOps是一个专注于…...
如何在5分钟内解锁所有Steam成就:Steam Achievement Manager完整使用指南
如何在5分钟内解锁所有Steam成就:Steam Achievement Manager完整使用指南 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 还在为Steam游戏中那…...
Python点云数据处理避坑指南:pypcd与pypcd4库在Ubuntu下的安装与实战对比
Python点云数据处理避坑指南:pypcd与pypcd4库在Ubuntu下的安装与实战对比 在3D视觉、自动驾驶和机器人开发领域,点云数据处理是基础而关键的环节。Ubuntu作为主流的开发环境,配合Python生态中的pypcd和pypcd4库,为工程师提供了高…...
Perplexity谣言查询实战手册:从输入到验证的7步黄金流程,附可复用提示词模板
更多请点击: https://codechina.net 第一章:Perplexity谣言辟谣查询的底层逻辑与认知前提 Perplexity 并非一种“谣言检测模型”或内置辟谣数据库的独立系统,而是一个基于大语言模型(LLM)增强检索的问答式搜索引擎。其…...
