
c++数组
数组
Crystal_Coding
这个作者很懒,什么都没留下…
展开
-
leetcode118. Pascal‘s Triangle(118. 杨辉三角)
文章目录题目:118. 杨辉三角基本思想:数学题目:118. 杨辉三角Given a non-negative integer numRows, generate the first numRows of Pascal’s triangle.In Pascal’s triangle, each number is the sum of the two numbers directly above it.Example:Input: 5Output:[ [1], [1,1],原创 2020-12-06 14:04:45 · 389 阅读 · 0 评论 -
leetcode976. Largest Perimeter Triangle(976. 三角形的最大周长)
文章目录题目:976. Largest Perimeter Triangle(976. 三角形的最大周长)基本思想:排序+三角形法则题目:976. Largest Perimeter Triangle(976. 三角形的最大周长)Given an array A of positive lengths, return the largest perimeter of a triangle with non-zero area, formed from 3 of these lengths.If it原创 2020-11-29 09:13:02 · 288 阅读 · 0 评论 -
leetcode454. 4Sum II(四数相加 II )/哈希
文章目录题目:454. 4Sum II(四数相加 II)基本思想:分组+哈希题目:454. 4Sum II(四数相加 II)Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero.To make problem a bit easier, all A, B, C, D have sam原创 2020-11-27 10:44:18 · 316 阅读 · 0 评论 -
leetcode922. 按奇偶排序数组 II
文章目录题目:922. 按奇偶排序数组 II基本思想:遍历题目:922. 按奇偶排序数组 II给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。 提示:2 <= A.length <= 2原创 2020-11-12 09:04:28 · 282 阅读 · 1 评论 -
leetcode973. 最接近原点的 K 个点/优先队列
文章目录题目:973. 最接近原点的 K 个点基本思想:优先队列题目:973. 最接近原点的 K 个点我们有一个由平面上的点组成的列表 points。需要从中找出 K 个距离原点 (0, 0) 最近的点。(这里,平面上两点之间的距离是欧几里德距离。)你可以按任何顺序返回答案。除了点坐标的顺序之外,答案确保是唯一的。示例 1:输入:points = [[1,3],[-2,2]], K = 1输出:[[-2,2]]解释: (1, 3) 和原点之间的距离为 sqrt(10),(-2, 2) 和原创 2020-11-09 15:04:49 · 265 阅读 · 0 评论 -
leetcode327. 区间和的个数
文章目录题目:327. 区间和的个数基本思想1:暴力(超时)(固定区间的开始位置,遍历结尾)基本思想2:固定区间的结束位置,遍历开始位置,借助multiset优化题目:327. 区间和的个数给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper。区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。说明:最直观的算法复杂度是 O(n2) ,请在此基础上优化你的算法。示例:原创 2020-11-07 20:34:40 · 349 阅读 · 0 评论 -
leetcode1356. 根据数字二进制下 1 的数目排序
文章目录题目:1356. 根据数字二进制下 1 的数目排序基本思想:题目:1356. 根据数字二进制下 1 的数目排序给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。示例 1:输入:arr = [0,1,2,3,4,5,6,7,8]输出:[0,1,2,4,8,3,5,6,7]解释:[0] 是唯一一个有 0 个 1 的数。[1,2,4,8] 都有 1 个原创 2020-11-06 10:13:18 · 219 阅读 · 0 评论 -
leetcode57. 插入区间
文章目录题目:57. 插入区间基本思想:遍历的同时进行区间合并题目:57. 插入区间给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例 1:输入:intervals = [[1,3],[6,9]], newInterval = [2,5]输出:[[1,5],[6,9]]示例 2:输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newI原创 2020-11-04 14:52:03 · 138 阅读 · 0 评论 -
leetcode941. 有效的山脉数组
文章目录题目:941. 有效的山脉数组基本思想:遍历题目:941. 有效的山脉数组给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < … A[i-1] < A[i]A[i] > A[i+1] > … > A[A.length原创 2020-11-03 09:03:04 · 119 阅读 · 0 评论 -
leetcode349. 两个数组的交集
文章目录题目:349. 两个数组的交集基本思想1:暴力基本思想2:借助集合实现题目:349. 两个数组的交集给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。来源:力扣(LeetCode)链接:https://leet原创 2020-11-02 10:09:39 · 141 阅读 · 0 评论 -
leetcode1365. 有多少小于当前数字的数字
文章目录题目:1365. 有多少小于当前数字的数字基本思想1:暴力基本思想2:排序基本思想3:计数排序题目:1365. 有多少小于当前数字的数字给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。以数组形式返回答案。示例 1:输入:nums = [8,1,2,2,3]输出:[4,0,1,1,3]解释:原创 2020-10-26 20:00:47 · 138 阅读 · 0 评论 -
leetcode1122. 数组的相对排序
文章目录题目:1122. 数组的相对排序基本思想:map题目:1122. 数组的相对排序给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。示例:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,原创 2020-09-18 11:19:48 · 444 阅读 · 0 评论 -
leetcode面试题 08.03. 魔术索引
文章目录题目:面试题 08.03. 魔术索引基本思想:一次遍历基本思想2:跳跃遍历(注意到这个题给的数组是有序的)题目:面试题 08.03. 魔术索引魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。示例1:输入:nums = [0, 2, 3, 4, 5]输出:0说明: 0下标的元素为0示例2: 输入:nums原创 2020-07-31 13:59:00 · 224 阅读 · 0 评论 -
leetcode350. 两个数组的交集 II
文章目录题目:350. 两个数组的交集 II完整代码1完整代码2:元素排好序题目:350. 两个数组的交集 II给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。进阶:原创 2020-07-13 15:35:03 · 176 阅读 · 0 评论 -
leetcode41. 缺失的第一个正数
文章目录题目:leetcode41. 缺失的第一个正数基本思想1:排序+遍历 (时间复杂度不符合要求)基本思想2:借助辅助空间(空间复杂度不符合要求)基本思想3:借助原数组空间(时间复杂度,空间复杂度均符合要求)题目:leetcode41. 缺失的第一个正数给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1提示:你的算法原创 2020-06-27 10:24:11 · 214 阅读 · 0 评论 -
leetcode238. 除自身以外数组的乘积
给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组原创 2020-06-04 17:29:27 · 130 阅读 · 0 评论 -
leetcode1431. 拥有最多糖果的孩子
给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。示例 1:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,true] 解释:孩子 1 有 2 个糖果,如果他得到所原创 2020-06-01 18:19:25 · 222 阅读 · 0 评论 -
leetcode1248. 统计「优美子数组」
给你一个整数数组 nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。示例 1:输入:nums = [1,1,2,1,1], k = 3输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。示例 2:输入:nums = [2,4,6], k = 1...原创 2020-04-21 18:34:32 · 478 阅读 · 1 评论 -
leetcode560. 和为K的子数组
给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subarray-sum-equals-k原创 2020-05-15 14:42:25 · 584 阅读 · 0 评论 -
leetcode面试题 01.07. 旋转矩阵
给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[...原创 2020-04-07 15:34:45 · 262 阅读 · 0 评论 -
leetcode892. 三维形体的表面积
在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。请你返回最终形体的表面积。示例 1:输入:[[2]]输出:10示例 2:输入:[[1,2],[3,4]]输出:34示例 3:输入:[[1,0],[0,2]]输出:16示例 4:输入:[[1,1,1],[1...原创 2020-03-25 09:31:43 · 199 阅读 · 0 评论 -
leetcode75.颜色分类
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。 首先,迭...原创 2020-01-14 20:20:13 · 101 阅读 · 0 评论 -
leetcode56.合并区间
给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。来源:力...原创 2020-01-13 19:56:00 · 177 阅读 · 0 评论 -
leetcode48.旋转图像
给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示...原创 2020-01-09 21:04:48 · 158 阅读 · 0 评论 -
剑指offer——矩阵中的路径
题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据...原创 2019-12-30 20:47:55 · 107 阅读 · 0 评论 -
leetcode18.四数之和
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[...原创 2019-12-24 19:52:22 · 93 阅读 · 0 评论 -
leetcode1.两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(Lee...原创 2019-12-20 10:06:14 · 126 阅读 · 0 评论 -
剑指offer57.(2)和为S的连续正数序列
题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序列。序...原创 2019-12-18 21:06:57 · 120 阅读 · 0 评论 -
剑指offer41.数据流中的中位数
题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。完整代码刚开始没太理解题意,踩了几个坑:求中位数时,序列一定是排好序以后的结果这里读取数据时,是“...原创 2019-12-18 19:56:39 · 140 阅读 · 0 评论 -
剑指offer59.滑动窗口的最大值
题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5...原创 2019-11-28 20:23:14 · 172 阅读 · 0 评论 -
剑指offer61.扑克牌顺子
题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张...原创 2019-11-25 21:01:45 · 177 阅读 · 0 评论 -
leetcode12.整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。1...原创 2019-11-23 11:41:11 · 134 阅读 · 0 评论 -
剑指offer45.把数组排成最小的数
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。完整代码当初看这道题的时候完全没思路,后来想到了一种暴力算法,涉及到字符串和整型的相互转换(忘记了字符串也是可以直接比较大小的),又不知道c++函数库里是否有相应的库函数,纠结来纠结去,直接看人家的代码了。在...原创 2019-11-19 21:32:27 · 184 阅读 · 0 评论 -
剑指offer53.数字在排序数组中出现的次数
题目描述统计一个数字在排序数组中出现的次数。多说一点:没搞明白这道题具体要统计什么,是某个数字出现的次数(比如:{13,23,34,55},统计3出现的次数),还是某个数出现的次数(比如:{13,23,34,55},统计55出现的次数),这两种写法的代码都能ac完整代码某个数字出现的次数class Solution {public: int GetNumberOfK(vecto...原创 2019-11-09 15:06:17 · 156 阅读 · 0 评论 -
leetcode8.字符串转换整数(atoi)
leetcode8.字符串转换整数(atoi)请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数...原创 2019-11-09 14:15:19 · 179 阅读 · 0 评论 -
剑指offer42.连续子数组的最大和
题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列...原创 2019-11-06 19:34:58 · 168 阅读 · 0 评论 -
剑指offer39.数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。完整代码哈希数组专门用来存放次数class Solution {public: int MoreThanHalfNum_Solution(vector<int...原创 2019-11-05 19:50:07 · 128 阅读 · 0 评论 -
leetcode88.合并两个有序数组
leetcode88.合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0...原创 2019-10-23 19:23:54 · 309 阅读 · 0 评论 -
leetcode——调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。完整代码#include<bits/stdc++.h>using namespace std;void reOrderArray(vector<int> &array){ ...原创 2019-10-22 19:54:12 · 407 阅读 · 0 评论 -
Leetcode66.加一
题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。...原创 2019-10-13 21:34:33 · 151 阅读 · 0 评论