文和906
文和906
全部文章
分类
未归档(4)
项目笔记(5)
题解(103)
归档
标签
去牛客网
登录
/
注册
文和906的博客
全部文章
(共8篇)
题解 | #调整数组顺序使奇数位于偶数前面(二)#
思路与调整数组顺序使奇数位于偶数前面(一)完全相同。这里就不赘述。具体讲一下有差异的地方。在(一)中要求奇数之间及偶数之间的相对位置不变,那么在交换奇数偶数时就涉及到稳定性的问题,在(一)中选择使用类似插入排序的操作来保证稳定性。而在(二)中,对稳定性不做要求,这无疑降低了难度,直接交换第一个偶数及...
C++
数组
2021-10-26
0
399
题解 | #把数组排成最小的数#
直接解题需要将int数组中所有元素的排列都列出来,逐一比较。看到题目中给出了贪心的tag,所以一定能用更快的方法来做。选择用比较直接的类似冒泡排序的思路来做。即只两两比较int数组中元素所组成的数字,将大的往后放。先将int数组中的元素使用to_string()方法存入string数组中。使用二重循...
C++
贪心
数组
2021-10-25
0
372
题解 | #数组中出现次数超过一半的数字#
由于有一个数字在数组中出现的次数超过了一半。则我们每次都选出两个不同的数字,将其从数组中去掉,直到数组中只剩下一个数,或多个相同的数,就是要找的众数。实际操作中,使用一个变量candi保存当前准备比较的数,用一个变量count保存这个准备比较的数还剩多少个才能完全从数组中去掉。每次比较时,若coun...
C++
数组
数学
2021-10-22
4
480
题解 | #调整数组顺序使奇数位于偶数前面(一)#
维护一个标记firstEven指向数组当前第一个偶数的位置。遍历数组,当遇到一个奇数时,判断其下标与firstEven是否相等,若相等,说明目前数组前面都是奇数,不需要调整顺序,使firstEven++,保持与循环控制遍历i同步。若不等,说明前面已有偶数出现,将当前i指向的奇数插入firstEven...
C++
数组
2021-10-22
1
455
题解 | #构建乘积数组#
先写一种暴力解法。使用二重循环遍历数组,将对应结果插入结果集。这种做法时间复杂度为O(n^2),空间复杂度O(1),显然还有改进空间。 class Solution { public: vector<int> multiply(const vector<int>&am...
C++
数组
2021-10-22
0
333
题解 | #顺时针打印矩阵#
模拟顺时针遍历矩阵的过层,先求出矩阵有多少层(圈),然后按层遍历。每次都从该圈左上角的点按照向右,向下,向左,最后向上的顺序遍历,然后按相同顺序遍历内圈。这种做法由于默认了给出的矩阵最少有两行两列,所以在遇到单行或单列时容易出现问题,为解决这一问题,在遍历完右和下时,判断结果数组内的元素个数是否已与...
C++
数组
模拟
2021-10-21
0
394
题解 | #数组中的逆序对#
开始想到的是用一个二重循环来遍历数组。 class Solution { public: int InversePairs(vector<int> data) { if(!data.size()){ return 0; } ...
C++
数组
归并排序
2021-10-19
1
506
题解 | #数组中重复的数字#
题目中要求时间复杂度O(n),可知不能使用排序来做。同时要求空间复杂度为O(n),则可以使用经典的空间换时间方法做。创建一个与输入数组numbers相同长度的数组count,用于记录numbers中每个数出现了几次。遍历数组,每遍历一个数就将count中下标为该数的元素++,并判断++后该元素的值。...
C++
数组
2021-10-19
7
778