目录
LeetCode1295.统计位数为偶数的数字
LeetCode1252.奇数值单元格的数组
LeetCode1304.和为零的N个唯一整数
LeetCode1299.将每个元素替换为右侧最大元素
LeetCode26.删除排序数组中的重复项
LeetCode面试题16.01.交换数字
LeetCode1313.解压缩编码列表
LeetCode1351.统计有序矩阵中的负数
LeetCode面试题01.07.旋转矩阵
常规解法,一分钟没AC就算不合格吧
class Solution {
public:
int findNumbers(vector& nums) {
int sum = 0;
for(int i=0;i0){
nums[i]/=10;
n++;
}
if(n%2==0)
sum++;
}
return sum;
}
};
强制类型转换,用to_string转换成string类型再判断!
class Solution {
public:
int findNumbers(vector& nums) {
int sum = 0;
for(int i=0;i
记得不是全局变量的话要自己手动赋值为零,简单模拟即可,水题
class Solution {
public:
int oddCells(int n, int m, vector>& indices) {
int a[n][m];
//必须要这样赋值0
for(int i=0;i
中奖……当然其他的解法有很多,自行DIY
class Solution {
public:
vector sumZero(int n) {
vector v;
if(n%2==0)
for(int i=-n/2;i<=n/2;i++){
if(i!=0)
v.push_back(i);
}
else{
for(int i=-n/2;i<=n/2;i++){
v.push_back(i);
}
}
return v;
}
};
先一顿瞎暴力,瞎几把乱搞一通AC就对了哈哈
class Solution {
public:
vector replaceElements(vector& arr) {
//先瞎暴力AC再说
int i;
for(i=0;imaxnum?arr[j]:maxnum;
}
arr[i] = maxnum;
}
arr[i] = -1;
return arr;
}
};
其实改进的方法是每次最大位置不用重复查找,记录其下标就行;
可以将复杂度降低,从O(n^n)降为O(n)
讨巧写法:利用set自动去重的特性(不推荐)
class Solution {
public:
int removeDuplicates(vector& nums) {
set s(nums.begin(),nums.end());
int i=0;
for(set::iterator it = s.begin();it!=s.end();it++){
nums[i++] = *it;
}
return s.size();
}
};
dalao写法,我是想不来;
解释一下,答案会对数组自动切片去前n个数,所以直接赋值不管后面的数是怎样就好
class Solution {
public:
int removeDuplicates(vector& nums) {
if(nums.size()<2)
return nums.size();
int i = 0;
int size = nums.size();
for(int j = 1;j
这题真是佛,我只能说这骚操作666
我佛了
class Solution {
public:
vector swapNumbers(vector& numbers) {
if(numbers[0]>0 && numbers[1]>0 || numbers[0]<0 && numbers[1]<0){
numbers[0]=-numbers[0];
numbers[0]=numbers[0]+numbers[1];
numbers[1]=numbers[1]-numbers[0];
numbers[0]=numbers[0]+numbers[1];
}else{
numbers[0]=numbers[0]+numbers[1];
numbers[1]=numbers[0]-numbers[1];
numbers[0]=numbers[0]-numbers[1];
}
return numbers;
}
};
水题……这都能中奖,佛了
class Solution {
public:
vector decompressRLElist(vector& nums) {
vector v;
for(int i=0;i
明显是二分,但是我二分还没有开始刷,不管,先花30秒A一遍再说
今天因为出去钓鱼耽误了刷链表的进度,还是这两天尽快把链表刷熟练了,开始二分!
class Solution {
public:
int countNegatives(vector>& grid) {
int sum = 0;
for(int i=0;i
这题略显无聊……
class Solution {
public:
void rotate(vector>& matrix) {
if(matrix.size()==0||matrix.size()!=matrix[0].size())
return;
int n = matrix.size();
for(int layer = 0;layer
关键是问题!最后一个字符是否必定是1比特,然后重点是给定的字符串总是由0结束!
所以最后一个元素0前面要是有奇数个零,那么为true,否则为false!
总体来说这道题和一般企业机试的风格挺像的,有点智商题的味道!
class Solution {
public:
bool isOneBitCharacter(vector& bits) {
int sum = 0;
// 统计最后一个元素前面连续1的个数
for(int i = bits.size()-2;i>=0;i--){
if(bits[i]==0)
break;
else
sum++;
}
return sum%2==0;
}
};