vector题目
2023-2-16
| 2023-8-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property

加一

题目:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。可以假设除了整数0之外,这个整数不会以零开头。
示例:
 
对数组 加一时,只需要关注 的末尾出现了多少个即可。可以考虑如下的三种情况:
  • 如果 的末尾没有,例如,那么直接将末尾的数加一,得到并返回
  • 如果 的末尾有若干个,例如,那么只需要找出从末尾开始的第一个不为的元素,即,将该元素加一,随后将末尾的全部置零,得到并返回
  • 如果 的所有元素都是,例如,那么答案为。需要构造一个长度比多1的新数组,将首元素置为,其余元素置为即可
 

旋转图像

题目:给定一个的二维矩阵 matrix 表示一个图像。将图像顺时针旋转90度。必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
示例:
notion image
 
 

矩阵置零

题目:给定一个的矩阵,如果一个元素为 ,则将其所在行和列的所有元素都设为 0
示例:
notion image
 
 

螺旋矩阵

题目:给你一个mn列的矩阵 matrix,按照顺时针螺旋顺序,返回矩阵中的所有元素。
示例:
notion image
 
可以将矩阵看成若干层,首先输出最外层的元素,其次输出次外层的元素,直到输出最内层的元素。
对于每层,从左上方开始以顺时针的顺序遍历所有元素。
notion image
 
 
题目:给你一个正整数 n,生成一个包含 1所有元素,且元素按顺时针顺序螺旋排列的 n x n正方形矩阵 matrix
示例:
notion image
 
 

轮转数组

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

第三大的数

题目:给你一个非空数组,返回此数组中第三大的数 。如果不存在,则返回数组中最大的数。
示例:
 
 
 

合并两个有序数组

题目:
给两个按 非递减顺序 排列的整数数组nums1nums2,另有两个整数mn ,分别表示nums1nums2中的元素数目。请合并nums2到 nums1中,使合并后的数组同样按非递减顺序 排列。
注:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初始长度为m + n,其中前m个元素表示应合并的元素,后n个元素为0 ,应忽略。nums2的长度为n 。
示例:
 
 

把数组排成最小的数

题目:输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个
示例:
 
 

最大数

题目:给定一组非负整数nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数
示例:
 
 
 

合并区间

题目:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。
示例:
如果按照区间的左端点排序,那么在排完序的列表中,可以合并的区间一定是连续的。如下图所示,标记为蓝色、黄色和绿色的区间分别可以合并成一个大区间,它们在排完序的列表中是连续的:
notion image
首先,将列表中的区间按照左端点升序排序,然后将第一个区间加入merged 数组中,并按顺序依次考虑之后的每个区间:
  • 如果当前区间的左端点在数组merged中最后一个区间的右端点之后,那么它们不会重合,可以直接将这个区间加入数组merged的末尾
  • 否则,它们重合,需要用当前区间的右端点更新数组merged中最后一个区间的右端点,将其置为二者的较大值。
 
 
 
 

打乱数组

题目:给一个整数数组nums ,设计算法来打乱一个没有重复元素的数组。打乱后,数组的所有排列应该是等可能的。实现 Solution class:
  • Solution(int[] nums) 使用整数数组 nums 初始化对象
  • int[] reset() 重设数组到它的初始状态并返回
  • int[] shuffle() 返回数组随机打乱后的结果
 
不妨设数组,其长度为,可以使用如下方法打乱:
  • 将数组中所有的数都放到数据结构中,并初始化打乱后的数组
  • 循环 次,在第 次循环中( ):
    • 中随机抽取一个数 ,将其作为打乱后的数组 的第 个元素;
    • 中移除
对于原数组 中的数来说,被移动到打乱后的数组的第个位置的概率为:
  • 计算机基础
  • 数据结构与算法
  • 数组 vector链表 list
    目录