classSolution { public: intcanCompleteCircuit(vector<int>& gas, vector<int>& cost){ vector<int> r(gas.size()); int total = 0; for (int i = 0; i < gas.size(); i++) { r[i]=gas[i]-cost[i]; total+=gas[i]-cost[i]; } if (total<0) return-1; int start=0; total=0; for (int i = 0; i < gas.size(); i++) { total+=r[i]; if (total<0){ total=0; start=i+1; }
} return start; }
}; intmain(){ vector<int> gas = {5,1,2,3,4}; vector<int> cost = {4,4,1,5,1}; Solution s = Solution(); int ret = s.canCompleteCircuit(gas,cost); cout << ret <<endl;
usingnamespace std; // v1 /* class Solution { public: void moveZeroes(vector<int>& nums) { vector<int> NonZeroElements; for (int i = 0; i < nums.size(); i++) { if (nums[i]){ NonZeroElements.push_back(nums[i]); } } for (int i = 0; i < NonZeroElements.size(); i++) { nums[i]= NonZeroElements[i]; } for (int i =NonZeroElements.size();i<nums.size();i++){ nums[i]=0; } } }; */
// v2 classSolution { public: voidmoveZeroes(vector<int>& nums){ int j = 0; for (int i = 0; i < nums.size(); i++) { if (nums[i]){ if (i!=j) swap(nums[j++],nums[i]); else j++; } }
} };
intmain(){
vector<int> a = {2,1,0,0,3}; Solution().moveZeroes(a); for (int i = 0; i < a.size(); i++) { cout << a[i] <<endl; }
usingnamespace std; classSolution { public: intremoveDuplicates(vector<int>& nums){ if (nums.empty()) return0; int j=0; for (int i = 0; i < nums.size(); i++) { if (nums[i]!=nums[j]){ if (i-j>1) nums[++j]=nums[i]; else j++; } } return j+1;
} };
intmain(){ vector<int> a ={1,2}; Solution s = Solution(); int ret = s.removeDuplicates(a); for (int i = 0; i < a.size(); i++) { cout << a[i] <<endl;