首页 > 编程语言 >【Java编程】【算法面试题】【数组轮转】给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

【Java编程】【算法面试题】【数组轮转】给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

时间:2024-03-31 14:03:42浏览次数:27  
标签:面试题 轮转 scanner nums int 数组 strings

原题:

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

例如:nums =[1,0,-1,2,3] k=1

预期结果:nums = [3,1,0,-1,2]

k=2

预期结果:nums = [2,3,1,0,-1]

以此类推。。。

【本文思路解析】:


1.不实用额外的数组,会多一部分开销;

2.每次轮转,位置移动1位,共计移动k次;

3.时间复杂度O(K*N)n=数组的长度;(貌似也不好)

【JAVA代码】:

public class RotateArray {
    //[1,0,-1,2,3]
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int k = scanner.nextInt();
        scanner.nextLine();
        String[] strings = scanner.nextLine().split(",");
        int len = strings.length;
        int[] strToArray = new int[len];
        for (int i = 0; i < len; i++) {
            if(strings[i].contains("[")){
               strings[i] &

标签:面试题,轮转,scanner,nums,int,数组,strings
From: https://blog.csdn.net/m0_37828130/article/details/137198649

相关文章

  • 面试题:JVM 调优
    一、JVM参数设置1.tomcat的设置vm参数修改TOMCAT_HOME/bin/catalina.sh文件,如下图JAVA_OPTS="-Xms512m-Xmx1024m"2.springboot项目jar文件启动通常在linux系统下直接加参数启动springboot项目nohupjava-Xms512m-Xmx1024m-jarxxxx.jar--spring.pro......
  • C语言入门:数组与指针的关系
    目录深入理解指针操作指针的基本概念指针与数组的关系指针与函数动态内存分配与释放内存分配函数内存释放函数动态内存管理注意事项深入理解指针操作、动态内存分配与释放是C语言编程中的核心技能。以下内容将进一步详细阐述这些主题,旨在帮助开发者更好地掌握指针......
  • lc3041 修改数组后最大化数组中的连续元素数目
    给定一个下标从0开始的只包含正整数的数组nums,你可以将数组中任意元素的值增加至多1,修改后,从数组中选择一个或多个元素,并确保这些元素升序排列后是连续的,求它的最大长度。将数组排序,然后从大到小处理,每个元素分别计算以它开始能得到的长度,包含它本身和加1后两种情况,递推即可。cl......
  • 【Java编程】【算法面试题】【数组合并】以数组 intervals 表示若干个区间的集合,其中
    原始题目:以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。......
  • 用函数指针数组来实现对一系列函数的调用
    include<stdio.h>intadd(inta,intb);intsub(inta,intb);intmax(inta,intb);intmin(inta,intb);voidmain(){inta,b,i,k;int(*func[4])(int,int)={add,sub,max,min}//定义指针数组,并对其赋初始值printf("selectoperator(0-add,1-sub,2-max,3-min)......
  • 数组模拟队列
    数组模拟队列通常用一个数组模拟一个队列,用两个变量标记队列的首尾。1intq[SIZE],hh=1,tt;//hh表示队头,tt表示队尾队列操作对应的代码如下:现在要对队列进行 M 个操作,其中的每个操作 3 和操作 4 都要输出相应的结果。输入格式第一行包含整数 M,表示操作......
  • C108 整体二分+树状数组(区修+区查)P3332 [ZJOI2013] K大数查询
    视频链接:C108整体二分+树状数组(区修+区查)P3332[ZJOI2013]K大数查询_哔哩哔哩_bilibili   参考:C82树状数组区修+区查P3372线段树1-董晓-博客园(cnblogs.com)LuoguP3332[ZJOI2013]K大数查询//整体二分+树状数组(区修+区查)O(n*logn*logn)#include<iost......
  • 面试题:Spring Boot Starter的功能与使用场景
    SpringBootStarter是SpringBoot框架为了简化项目的初始化和配置工作而设计的一种模块化依赖管理方式。它主要具有以下几个关键功能和使用场景:功能:1.依赖管理每个Starter都是一组相关的依赖项集合,这些依赖项都是为了实现特定功能而预先配置好的。例如,`spring-boo......
  • Python面试题
    1、现有100万行的交易数据文件tansamt.txt,每行显示1个交易金额(首行无字段信息),样例如下。数据文件存放在服务器g:\data目录。203.495-5091800请通过Python脚本,把最大和最小的交易金额通过print命令打印出来:file_path=r'g:\data\tans_amt.txt'#打开文件并读取所有......
  • JS数组与对象
    数组什么是数组:数组是可以用来存储一组数据,数组中的数据可以存储任意的数据类型如何定义数组:用[]定义数组,在[]中,多个元素/值中间用逗号分隔数组的格式:变量名=[元素或值]获取数组中的值:变量名[下标]数组元素是一对:下标和值;每一个元素都有相对应的下标,下标从0开始,依次递增......