怎么做qq空间支付网站,辽宁省建设监理协会网站,flash相册网站源码,网站关键字怎么写文章目录 1. 只出现一次的数字2. 杨辉三角3. 电话号码字母组合 ヾ(๑╹◡╹)#xff89; 人总要为过去的懒惰而付出代价ヾ(๑╹◡╹)#xff89; 1. 只出现一次的数字
力扣链接
代码展示#xff1a;
class Solution {
public:int singleNumber(vectori… 文章目录 1. 只出现一次的数字2. 杨辉三角3. 电话号码字母组合 ヾ(๑╹◡╹) 人总要为过去的懒惰而付出代价ヾ(๑╹◡╹) 1. 只出现一次的数字
力扣链接
代码展示
class Solution {
public:int singleNumber(vectorint nums) {int value 0;for(auto e : nums){value ^ e;}return value;}
};思路异或
2. 杨辉三角
力扣链接
代码展示
class Solution {
public:vectorvectorint generate(int numRows) {vectorvectorint vv;vv.resize(numRows);//开空间numRows个vectorint对象//杨辉三角for (size_t i 0; i vv.size(); i){//开空间vv[i].resize(i 1, 0);//开空间vv[i][0] 1;vv[i][vv[i].size() - 1] 1;}for (size_t i 0; i vv.size(); i){for (size_t j 0; j vv[i].size(); j){if (vv[i][j] 0){vv[i][j] vv[i - 1][j - 1] vv[i - 1][j];}}}return vv;}
};思路 1规律头尾都是1中间第[j]个数等于上一行[j-1][j] 2通过两次operator,来访问每一个数据。本质上是先访问第i个vector int 对象然后再访问这个对象的第j个int类型的数据动态二维数组 注意1vector vector int 类比二维数组vector int 类比于int数组vector vector int 类比于对象数组对象全是vector int 类型的 3. 电话号码字母组合
力扣链接 代码展示
class Solution {//数字对应英文字母的映射string _numToStr[10] { , , abc, def, ghi, jkl, mno, pqrs, tuv, wxyz};
public://递归函数void _letterCombine(string digits, size_t di, string combineStr, vectorstring retV){//返回条件if(di digits.size()){retV.push_back(combineStr);return;}//取到数字字符转换为数字在取到对应的字符串int num digits[di] - 0;//数字字符转换为数字string str _numToStr[num];//取到对应的字符串for (auto ch : str){_letterCombine(digits, di 1, combineStr ch, retV);}}vectorstring letterCombinations(string digits) {vectorstring retV;if(digits.empty())return retV;size_t di 0;string str;_letterCombine(digits, di, str, retV);return retV;}
};思路1排列组合多路递归。 2当di等于数字字符串的大小【digits.size()】时此时的combineStr尾插到retV【类型是vector string 】并递归返回。 注意1指的是2-9键所对应的字母的组合【比如2对应的就是abc3对应的就是def,4对应的就是ghi,7对应的就是pqrs等】。 2输出多少个数字字符串的长度就是多少。