T1:去重算法
class Solution
{
public:
int removeDuplicates(vector<int>& nums)
{
int src = 0, dst = 0;
while (src<nums.size())
{
if (nums[src]==nums[dst])
{
++src;
}
else
{
nums[++dst] = nums[src++];
}
}
nums.resize(dst+1);
return dst + 1;
}
};
T2、电话号码的字母组合
class Solution
{
const char* numToStr[10] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
public:
void Combine(string digits,int di,vector<string>& retV,string combineStr)
{
if (di == digits.size())
{
retV.push_back(combineStr);
return;
}
int num = digits[di] - '0';
string str = numToStr[num];
for (auto ch:str)
{
Combine(digits,di+1,retV,combineStr+ch);
}
}
vector<string> letterCombinations(string digits)
{
vector<string> v;
if(digits.empty())
return v;
string str;
Combine(digits,0,v,str);
return v;
}
};