leetcode中国語(一)#7反転整数,#77組合せ

1045 ワード

これらの問題は私にとって、学習の任務は重くなくて、何のコードが打っている時手触りを維持していないので、順番に問題を塗っていないで、暇があれば興味のあることを見て1、2つします
 
#7反転整数
class Solution {
public:
    int reverse(int x) {
        bool tag = x <= 0;
		long ans;
		int tmp;
		x = abs(x);
		for (ans = 0; x > 0; x = x / 10)
		{
			tmp = x % 10;
			ans = ans * 10 + tmp;
		}
		if (ans > INT_MAX)
			return 0;
		else
		{
			if (tag)
				return (int)(-ans);
			else
				return ans;
		}
    }
};

#77組合せ
class Solution {
public:
    vector> combine(int n, int k) 
	{
		vector> ans;
		if (n == 0 || k == 0)
			return ans;

		vector arr;
		for (int i = 1; i <= n - k + 1; ++i)
			helper(ans, i, n, k, arr);
		return ans;
	}

	void helper(vector>& ans, int start, int n, int k, vector arr)
	{
		arr.push_back(start);
		if (k == 1)
		{
			ans.push_back(arr);
			return;
		}
		k--;
		for (int i = start + 1; i <= n - k + 1; ++i)
			helper(ans, i, n, k, arr);
	}
};