首页 > 其他分享 >数组面试题

数组面试题

时间:2023-04-06 10:55:28浏览次数:56  
标签:面试题 right reverse nums int --- 数组 left

1. 消失的数字

题目链接

题目描述

 

解题思路

异或操作符支持乘法交换律 --->  0^3^0^1 ^0^1^2^3 ---> 0^0^0^1^1^3^3^2 --->相同的值异或为0 ---> 0^2 --->2

int missingNumber(int* nums, int numsSize){
    int val = 0;
    int i = 0;
    for (i = 0; i < numsSize; i++)
    {
        val ^= nums[i];
    }
    for (i = 0; i <= numsSize; i++)
    {
        val ^= i;
    }
    return val;
}

时间复杂度 O(N), 空间复杂度 O(1)

2. 轮转数组

题目链接

题目描述

解题思路

前n-k个逆置 ---> 4 3 2 1 后k个逆置 ---> 4 3 2 1 7 6 5 整体逆置 ---> 5 6 7 1 2 3 4
void reverse(int* nums, int left, int right)
{
    while (left < right)
    {
        int tmp = nums[left];
        nums[left] = nums[right];
        nums[right] = tmp;
        left++, right--;
    }
}
void rotate(int* nums, int n, int k){
    int sign = k%n;
    // 前n-k个逆置
    reverse(nums,0,n-sign-1);
    // 后个k个逆置
    reverse(nums,n-sign,n-1);
    // 整体逆置
    reverse(nums,0,n-1);
}

时间复杂度 O(N), 空间复杂度 O(1)

标签:面试题,right,reverse,nums,int,---,数组,left
From: https://www.cnblogs.com/xumu11291/p/17292111.html

相关文章

  • 【LeetCode剑指offer 01】数组中重复的数字、两个栈实现队列
    数组中重复的数字数组中重复的数字找出数组中重复的数字。在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例1:输入:[2,3,1,0,2,5,3]输......
  • C++/CLI 托管C++的数组介绍【4】
    Git源码地址 C++/CLI托管C++的托管与非托管字符串的相互转换【1】C++/CLI托管C++的数据类型介绍【2】C++/CLI托管C++的基本数据类型及函数【3】C++/CLI托管C++的数组介绍【4】C++/CLI托管C++之字符串封装【5】C++/CLI托管C++之enum枚举封装【6】C++/CLI托管C++之类、属性......
  • 面试题大集合
    目录第一章Python基础第二章函数第三章模块第四章面向对象第五章网络和并发编程第六章数据库和缓存第七章前端第八章django第九章Flask第十章tornado第十一章api第十二章git第十三章爬虫第十四章算法和数据结构第十五章Linux第十六章设计题第十七章客观题第十八......
  • 448.找到所有数组中消失的数字
    找到所有数组中消失的数字给你一个含n个整数的数组nums,其中nums[i]在区间[1,n]内。请你找出所有在[1,n]范围内但没有出现在nums中的数字,并以数组的形式返回结果。示例1:输入:nums=[4,3,2,7,8,2,3,1]输出:[5,6]示例2:输入:nums=[1,1]输出:[2]提示:n==nums......
  • TCP面试题
    说说TCP的三次握手假设发送端为客户端,接收端为服务端。开始时客户端和服务端的状态都是CLOSED。(1)第一次握手:客户端向服务端发起建立连接请求,客户端会随机生成一个起始序列号x,客户端向服务端发送的字段中包含标志位SYN=1,序列号seq=x。第一次握手前客户端的状态为CLOSE,第一次握手......
  • LeetCode 81. 搜索旋转排序数组 II
    1classSolution{public:boolsearch(vector<int>&nums,inttarget){intindex=-1;for(inti=0;i<nums.size()-1;++i){if(nums[i]>nums[i+1])index=i;}if(index==-1){......
  • HJ64_MP3光标位置_数组_模拟思路_滑动窗口
    思路:用模拟跟踪U、D得输出的歌曲,用双指针跟踪歌曲当前窗口。注意,在第一首向上滑动,和最后一首向下滑是,窗口特殊跳动,此时双指针指向特殊处理。留意到,不管是特殊情况还是普通情况,指针上划时歌曲减一。如1调到10,10上划为9,视为减一。得到代码如下:importsysa=int(sys.stdin.......
  • JavaScript中数组元素删除的七大方法汇总
    原文链接:https://blog.csdn.net/u010323023/article/details/52700770 在JavaScript中,除了Object之外,Array类型恐怕就是最常用的类型了。与其他语言的数组有着很大的区别,JavaScript中的Array非常灵活。今天我就来总结了一下JavaScript中Array删除的方法。大致的分类可以分为如下......
  • ES6中一些方便的数组方法和对象方法
    //一共七个方法,其实,都是带有遍历性质的方法参考https://blog.csdn.net/PeaYing/article/details/100175757......
  • Go语言入门3(数组)
    数组​ 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整形、字符串或者自定义类型(结构体、接口)。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。⭐:在其他语言中数组大多是引用类......