본문 바로가기

leetcode12

[C++][leetcode] Maximum Subarray :: seoftware 문제 접근방법 다이나믹 프로그래밍을 사용하려고 했는데 굳이 새로운 배열을 만들 필요는 없을것 같아서 max 값을 계속 업데이트 해주는 방식으로 접근! 소스코드 class Solution { public: int maxSubArray(vector& nums) { int max = 0; bool all_negative = true; for(int i = 0; i 0){ int tmp = 0; all_negative = false; for(int j = i; j max) max = tmp; } } } if(all_negative) { max = nums[0]; for(int i : nums){ if(max < i) max = i; } } return max; } }; 빨리 풀라고 시작이 양수인 것만 subar.. 2020. 4. 3.
[C++][leetcode] single number :: seoftware 문제 접근방법 배열을 정렬한 후 자기의 오른쪽과 값을 비교한다. 같으면 패스, 다르면 그 값을 리턴! 소스코드 class Solution { public: int singleNumber(vector& nums) { sort(nums.begin(), nums.end(), greater()); int target = -1; for(int i = 0; i 2020. 4. 3.
[C++][leetcode] happy numbers :: seoftware 문제 접근방법 무한루프에 빠지게 되는 조건이 뭘까? 똑같은 숫자가 또 나오면 무한루프에 빠진다! 따라서, 루프를 돌 때마다 나오는 결과값을 저장해 놨다가 또 나오는지 확인하는 과정이 필요하다. 소스코드 class Solution { bool isVisited(int x, vector&arr){ if(arr.empty()) return false; for(int i : arr){ if(x==i) return true; } return false; } public: bool isHappy(int n) { vector arr; int m = n; int cur; while(1){ cur = 0; while(m>0){ cur += (m%10)*(m%10); m /= 10; } if(cur == 1) return.. 2020. 4. 3.