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

【C语言】每日一题(旋转数组)

旋转数组,链接奉上
在这里插入图片描述

目录

  • 方法:
    • 创建额外的数组:
      • 整体思路:
      • 代码实现:
    • 数组反转:
      • 整体思路:
      • 代码实现:
      • 小插曲:

方法:

创建额外的数组:

整体思路:

创建一个额外的数组,将原数组中的数字根据k(即要向右轮转的个数)放到新的数组中,最后将新的数组赋值给原数组

细节:

在放置在数组时,分为两种情况:
例如:

1 2 3 4 5 6 7 原数组
6 7 1 2 3 4 5 轮转后的数组

我们发现:

原数组中的1在新的数组中在第三位2第四位
6第一位
这就说明我们在放置时需要注意不通情况下放置的方法不同

代码实现:

void rotate(int* nums, int numsSize, int k)
{k = k % numsSize;int arr[numsSize];int j = 0;for(int i = 0; i < numsSize; i++){//判断两种情况if(i + k <= numsSize - 1){arr[i+k] = nums[i];}else{arr[j++] = nums[i];}}//赋值到原数组for(int i = 0; i < numsSize; i++){nums[i] = arr[i];}
}

数组反转:

整体思路:

将字符串 反转3次
1.先整体翻转
2.根据k将前半部分再次翻转
3.将剩下的数组再反转

例如:假设我们有如下数组,我们轮转2

1 2 3 4 5 6 原数组
6 5 4 3 2 1 整体翻转的数组
5 6 1 2 3 465翻转,41翻转后的结果即为轮转2个的结果

细节:
当我们传参时,知道数组的首尾,就可以将首尾之间的元素进行翻转,
另外,传参时要注意首尾的大小,防止越界等现象发生

代码实现:

void reverse(int* start,int* end)
{while(end > start){int tmp = *start;*start = *end;*end = tmp;end--;start++;}
}void rotate(int* nums, int numsSize, int k)
{k = k % numsSize;reverse(nums, nums + numsSize - 1);reverse(nums, nums + k -1);reverse(nums + k, nums + numsSize - 1);
}

小插曲:

当时实现代码时,我考虑到nums+k-1会出现负数的情况,但是我打算先将整体逻辑敲出来,敲出来之后就直接提交了,没想到的是居然能过,这就让我困惑起来
后来我举例代入,发现当nums+k-1小于0时,while循环不会进入,=0时也不会进入,无意识敲得代码居然有如此严密的逻辑性(震惊)

欢迎讨论

相关文章:

【C语言】每日一题(旋转数组)

旋转数组&#xff0c;链接奉上 目录 方法:创建额外的数组&#xff1a;整体思路&#xff1a;代码实现&#xff1a; 数组反转&#xff1a;整体思路&#xff1a;代码实现&#xff1a;小插曲&#xff1a; 方法: 创建额外的数组&#xff1a; 整体思路&#xff1a; 创建一个额外的…...

系统架构师考试科目一:综合知识

某软件公司欲开发一个 Windows 平台上的公告板系统。在明确用户需求后&#xff0c;该公司的 架构师决定采用 Command 模式实现该系统的界面显示部分&#xff0c;并设计 UML 类图如下 图所示。图中与 Command 模式中的 Invoker 角色相对应的类是( ) &#xff0c;与 ConcreteComm…...

面向对象与面向过程讲解

目录 简介 面向过程编程&#xff08;Procedural Programming&#xff09; 什么是面向过程编程&#xff1f; 特点&#xff1a; 面向对象编程&#xff08;Object-Oriented Programming&#xff09; 什么是面向对象编程&#xff1f; 特点&#xff1a; 面向对象 vs. 面向过程…...

【SA8295P 源码分析 (四)】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析

【SA8295P 源码分析】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析 系列文章汇总见:《【SA8295P 源码分析 (四)】网络模块 文章链接汇总 - 持续更新中》 本文链接:《【SA8295P 源码分析 (四)】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解…...

Python【list列表去重】

目录 要求&#xff1a; 将list中的重复数据去重&#xff0c;至少使用两种方案 方案一&#xff1a; 方案二&#xff1a; 要求&#xff1a; 将list中的重复数据去重&#xff0c;至少使用两种方案 方案一&#xff1a; 使用set &#xff0c;可以将list转换为set&#xff0…...

Leetcode——字符

520. 检测大写字母 class Solution { public:bool detectCapitalUse(string word) {int big 0, small 0, len word.length();for (int i 0; i < len; i) {if (word[i] > 65 && word[i] < 90) {big;}else {small;}}if (big len || small len) {return tr…...

深入解析docker内核网桥

今天做虚拟桌面&#xff0c;朋友问我&#xff0c;为什么vnc 连接另一个docker 容器一直超时&#xff0c;原因是在docker 启动的时候没有组网&#xff0c;那么接下来我就要解析下docker的内核网络。 我们思考几个问题&#xff0c;带你了解linux 中docker 网络实现的基本原理。 文…...

ubuntu18.04服务器双网口配置上外网

记录一下配置服务器过程&#xff0c;本以为简单&#xff0c;结果整了一天。 服务器有2个网口&#xff0c;网口2是用来上外网的&#xff0c;原来用的01-netcfg.yaml进行ip地址设置&#xff0c;主要就用2条命令&#xff1a; vi /etc/netplan/01-netcfg.yaml &#xff08;打开后…...

【安全体系架构】——防御深度架构

防御深度架构&#xff1a; 防御深度架构是一种多层次的安全模型&#xff0c;旨在通过在网络和系统的各个层次上部署多个安全措施&#xff0c;以抵御不同类型的威胁和攻击。这个模型承认单一的安全措施可能无法全面防御所有潜在威胁&#xff0c;因此采用了多层次的安全防御策略…...

Opencv之RANSAC算法用于直线拟合及特征点集匹配详解

Opencv之RANSAC算法用于直线拟合及特征点集匹配详解 讲述Ransac拟合与最小二乘在曲线拟合上的优缺点 讲述在进行特征点匹配时&#xff0c;最近邻匹配与Ransac匹配的不同之处 另外&#xff0c;Ransac也被用于椭圆拟合、变换矩阵求解等 1. 直线拟合 1.1 原理 RANSAC(RANdom …...

Jenkins环境部署与任务构建

一、CI/CD 1、CI/CD 概念&#xff1a; CI/CD 是一种软件开发和交付方法&#xff0c;旨在加速应用程序的开发、测试和部署过程&#xff0c;以提高软件交付的质量和效率。 (1) 持续集成 (CI Continuous Integration): 持续集成是开发团队频繁集成其代码更改的过程。开发者将其…...

ES6 Class和Class继承

1.class的基本语法 class可以理解为是一个语法糖&#xff0c;将js只能通过构造函数创建实例的方法进行了补充 构造函数&#xff1a; function Person ({ name, age18 }) {this.name namethis.age age } new Person({name: 张三}) Class类&#xff1a; class Person {con…...

C++11 packaged_task

std::packaged_task 把一个方法打包成一个task扔到线程中执行&#xff0c;然后通过packaged_task中的furture等待执行结果。 void test_promise() {std::packaged_task <int()> task([]()->int {std::cout << "packaged_task begin \n" << std…...

delete、drop、truncate三兄弟

比较方面/具体命令deletetruncatedrop删除范围逐行删除&#xff08;记录行&#xff09;逐页删除&#xff08;数据页&#xff09;整张表&#xff08;数据表结构&#xff09;所属范畴数据操作语言&#xff08;DML&#xff09;数据定义语言&#xff08;DDL&#xff09;数据定义语言…...

C/C++运算优先级

文章目录 前言1.运算优先级表2.举例说明&#xff1a;总结 前言 最近复习C基础知识的时候&#xff0c;发现对这部分还是有些模糊。常用的 - &#xff0c;括号等运算符对于它们的优先级还是比较明确的。但是涉及到移位运算&#xff0c;逻辑运算这种&#xff0c;再结合四则运算…...

apache搭建静态网站,moongoose搭建网站后台,出现的跨域问题解决

文章目录 1&#xff0c;问题描述1.1&#xff0c;当网页和后台是不同服务时会产生跨域问题1.2&#xff0c;跨域问题 2&#xff0c;nginx端口转发解决跨域问题2.1&#xff0c;下载并安装nginx2.1.1&#xff0c;解压后如下所示2.1.2&#xff0c;进入解压目录后&#xff0c;执行配置…...

LiveQing视频点播流媒体RTMP推流服务功能-支持视频点播分屏大屏展示视频轮巡分组播放RMP推流直播大屏展示

LiveQing支持视频点播分屏大屏展示视频轮播分组播放RMP推流直播大屏展示 1、分屏展示2、轮巡播放3、RTMP推流视频直播和点播流媒体服务 1、分屏展示 LiveQing支持将视频点播、鉴权直播&#xff0c;拉转直播视频流&#xff0c;进行分屏播放。 2、轮巡播放 3、RTMP推流视频直播和…...

tf loss构建常用到函数

1、tf.map_fn tf.map_fn是TensorFlow中的一个函数&#xff0c;用于对给定的函数和输入进行逐元素的映射&#xff0c;其定义如下&#xff1a; tf.map_fn(fn,elems,dtypeNone,parallel_iterationsNone,back_propTrue,swap_memoryFalse,infer_shapeTrue,nameNone,fn_output_sign…...

行为型模式-备忘录模式

备忘录模式保存一个对象的某个状态&#xff0c;以便在适当的时候恢复对象。备忘录模式属于行为型模式。 意图&#xff1a;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态。 主要解决&#xff1a;所谓备忘录模式就是在不破坏…...

Android Studio初学者实例:RecyclerView学习--模仿今日头条--续

新学期开始了&#xff0c;这篇文章收到了很多人的评论有很多地方不懂&#xff0c;所以写下了以下的文章--续篇 首先使用RecyclerView也好还是使用ListView&#xff0c;更或是GridView你都要先构思需要什么 这些东西无一例外通常都是用在列表显示下&#xff0c;那么需要一些&a…...

Unity中Dropdown与TMP_Dropdown的OnValueChange事件优化:解决单选项点击无响应问题

1. 问题背景&#xff1a;Dropdown单选项点击无响应的尴尬 最近在做一个Unity项目时&#xff0c;遇到了一个让人抓狂的问题&#xff1a;当Dropdown下拉框只有一个选项时&#xff0c;无论怎么点击都不会触发OnValueChange事件。这简直就像按电梯按钮没反应一样让人烦躁。想象一下…...

从“完全或无”到IND-CCA2:公钥加密安全模型的演进与实战解析

1. 公钥加密安全模型的演进之路 我第一次接触公钥加密安全模型时&#xff0c;完全被各种缩写搞晕了。直到在实际项目中踩过几次坑&#xff0c;才真正理解这些安全等级的重要性。想象一下&#xff0c;你给朋友寄了个带锁的箱子&#xff0c;从"完全或无"到IND-CCA2&…...

LeetCode 3379. 转换数组 详细技术解析

LeetCode 3379. 转换数组 详细技术解析 前言 本文针对 LeetCode 3379. 转换数组 题目,进行全面、细致的技术解析,包含题目拆解、解题思路推导、规范代码实现、示例验证、复杂度分析及边界拓展,贴合 CSDN 技术博客高分标准(逻辑清晰、格式规范、内容详实、代码可直接复制、…...

PostgreSQL vs PolarDB:Checkpoint 调优策略深度对比(高频 vs 低频)

在一次 PostgreSQL 性能排查中&#xff0c;我遇到了这样一段日志&#xff1a;checkpoints are occurring too frequently (29 seconds apart) HINT: Consider increasing the configuration parameter "max_wal_size".而另一边&#xff0c;在 PolarDB 文档/实践中却看…...

PX4混控器加载流程与多旋翼输出实现剖析

1. PX4混控器的作用与基本概念 混控器在PX4飞控系统中扮演着关键角色&#xff0c;它负责将飞行控制器计算出的姿态控制指令&#xff08;如滚转、俯仰、偏航力矩&#xff09;转换为实际电机或舵机的输出信号。简单来说&#xff0c;就像汽车的方向盘和油门需要通过传动系统转换为…...

i.MX6UL开发板OpenWrt系统移植实战:从内核适配到镜像打包

1. 环境准备与工具链选择 第一次接触i.MX6UL开发板时&#xff0c;我花了两周时间才搞明白为什么官方OpenWrt 19.07无法直接运行。这个Cortex-A7架构的芯片虽然性能不错&#xff0c;但内核适配确实是个技术活。建议直接用Ubuntu 14.04系统&#xff0c;别问为什么——这是用三个不…...

基于Univer的前端Excel交互式编辑器开发指南

1. 为什么选择Univer开发Excel编辑器&#xff1f; 如果你正在寻找一个能在前端实现Excel功能的高效解决方案&#xff0c;Univer绝对是当前最值得考虑的开源框架之一。我去年在开发一个在线报表系统时&#xff0c;对比了市面上多个表格库&#xff0c;最终选择Univer的原因很简单…...

ComfyUI API图生图实战:从自定义节点到Web接口的完整搭建

1. ComfyUI图生图实战&#xff1a;香水瓶设计案例解析 第一次接触ComfyUI的API开发时&#xff0c;我被它灵活的节点式工作流深深吸引。作为一个长期从事AI产品开发的工程师&#xff0c;我发现很多团队在使用Stable Diffusion时都面临一个共同问题&#xff1a;如何将AI生图能力快…...

IndexTTS2:免费开源的情感可控零样本语音合成系统终极指南

IndexTTS2&#xff1a;免费开源的情感可控零样本语音合成系统终极指南 【免费下载链接】index-tts An Industrial-Level Controllable and Efficient Zero-Shot Text-To-Speech System 项目地址: https://gitcode.com/gh_mirrors/in/index-tts 你是否在为视频配音时苦恼…...

上海全屋定制工厂机构排名

在上海这座国际化大都市中&#xff0c;家居定制行业百花齐放&#xff0c;而上海尚岛伟奇全屋定制工厂&#xff08;简称"尚岛伟奇美学定制"&#xff09;凭借二十余年的行业积淀&#xff0c;已成为众多家庭值得信赖的家居定制选择。源起与发展&#xff1a;扎根上海&…...