1. 136. 只出现一次的数字
传送门
题目详情

代码(直接来异或)
class Solution {
public:
int singleNumber(vector<int>& nums) {
int ret=0;
for(auto e:nums)
{
ret=ret^e;
}
return ret;
}
};
思路
- 异或运算的性质:异或运算(^)具有以下性质**(相同为0,相异为1)**
- 任何数和0做异或运算,结果仍然是原来的数:a ^ 0 = a
- 任何数和自身做异或运算,结果为0:a ^ a = 0
- 异或运算满足交换律和结合律:a ^ b ^ a = (a ^ a) ^ b = 0 ^ b = b
- 利用异或运算的性质:如果一个数出现两次,那么两次出现的数异或后结果为0;如果一个数只出现一次,那么异或后结果为该数本身。
- 利用上述性质,遍历
nums
中的所有元素,并进行异或运算,最终得到的结果就是只出现一次的元素。

2. 118. 杨辉三角
传送门
题目详情

代码1
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> vv;
vv.resize(numRows);
for(int i=0;i<numRows;i++)
{
vv[i].resize(i+1);
vv[i].front()=vv[i].back()=1;
}
for(int i=