Generate Parentheses

CREATED TIME: Feb 17, 2020 10:39 PM UPDATED TIME: Feb 17, 2020 10:40 PM 난이도: Medium class Solution { public: void solve(string s, int left, int right, vector& ans, int limit){ if(s.length() == limit * 2){ ans.push_back(s); return; } if(left < limit) ...

더보기

Convex Optimization - Lecture 7

Create time: Feb 16, 2020 11:46 AM Update time: Feb 16, 2020 11:32 PM inequality constraint function을 vector valued 형태로 변환하면 이를 generalized inequality 라 부름. generalized inequality 를 가지느 가장 간단한 convex optimization problem 은 conic form problem 이다. 이는 linear objective function 을 가지고, K-convex한 하나의 affine inequality constraint function을 가진다. ...

더보기

Convex Optimization - Lecture 6

Create time: Feb 15, 2020 11:40 AM Update time: Feb 16, 2020 11:31 PM objective function이 위와같은 꼴을 가질때 linear fractional program 이라고 함. 이떄, objective function 의 domain 은 위와같이 분모 > 0 임. 그리고, 이 objective function은 quasiconvex function임. quasiconvex 를 나타내는 부등식에 분모를 양변에 곱하여 비교해보자. linear fractional program 은 feasible set 이 non-empty 라면...

더보기

Minimum Path Sum

CREATED TIME: Feb 15, 2020 1:09 AM UPDATED TIME: Feb 15, 2020 1:09 AM 난이도: Medium class Solution { public: int minPathSum(vector<vector>& grid) { int x = grid.size(); int y = grid[0].size(); vector<vector> v(x, vector(y, 0)); v[0][0] = grid[0][0]; for(int i=1; ...

더보기

Intersection of Two Linked Lists

CREATED TIME: Feb 15, 2020 1:08 AM UPDATED TIME: Feb 15, 2020 1:09 AM 난이도: Easy /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *getIntersectionNode(ListNode ...

더보기

Convex Optimization - Lecture 5

Create time: Feb 09, 2020 12:24 PM Update time: Feb 11, 2020 9:13 PM Convex function 은 위와같은 형태를 가진다. minimize, maximize 해야하는 objective function 이 있고, 여기에 inequality constraint, equality constraint 가 있다. objective function, inequality constraint, equality constraint 을 모두 만족하는 domain x 가존재한다면, 이를 fessible 하다 라고 부른다. 하나라도 벗어난다면, 이는 fess...

더보기

Convex Optimization - Lecture 4

Create time: Feb 09, 2020 12:23 PM Update time: Feb 09, 2020 7:33 PM Lecture 3에서 진행하던 operations that preserve convexity 중 안한거 부터 진행. Vector composition g: 실수 n 차원 → 실수 k 차원 함수와 h: 실수 k 차원 → 실수 1 차원 함수가 있다고 해보자. 두 함수의 합성함수는 다음 경우에서 convex 이다. Minimization convex function의 minimum 과 infimum은 convex function 이다. Perspective convex ...

더보기

Invert Binary Tree

CREATED TIME: Feb 09, 2020 11:14 PM UPDATED TIME: Feb 09, 2020 11:15 PM 난이도: Easy /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: ...

더보기

Convex Optimization - Lecture 3

Create time: Feb 06, 2020 11:47 PM Update time: Feb 09, 2020 11:05 PM Definition of Convex function domain이 convex set 이여야 한다. 그리고 convex function 에서 두 점을 뽑아서 line segment 를 구성했을때, function 의 값은 해당 line segment 보다 작거나 같아야한다. 즉, 볼록함수여야함. 무조건 bolw shape 일 필요는 없지만 positive curvature이여야 한다. 위 식에서 equality를 제거하면, strictly convex functinon이...

더보기

Convex Optimization - Lecture 2

Create time: Feb 06, 2020 11:47 PM Update time: Feb 08, 2020 2:39 AM Affine set x1 와 x2 라는 점 이 있고, 모든 set 이 이 두 점을 이은 선 위에 있을경우, affine set 이라고 한다. 이를 다음 수식으로 표현 할 수 있다. Convex set line segment 란, 두 점을 잇는 선중 left 끝과 right 끝이 각 점인 선 이다. 다음과 같은 그림으로 그려질 수 있다. 이는 아래 수식에서, theta가 0 ≤ theta ≤ 1 이면 된다. Convex set 이란, 특정 집합에서 두 점을 뽑았을때...

더보기

Convex Optimization - Lecture 1

Create time: Feb 06, 2020 11:47 PM Update time: Feb 07, 2020 8:37 PM 머신러닝을 하면서 최적화 이론에 대해 하나도 모르고있었다. Convex optimization의 정말 유명한 강의인 stanford EE364A 를 빠르게 수강해볼 예정이다. 1강은 mathematical optimization, linear programming, convex optimization 등에 대해 배우고 예제를 살펴본 후 non-linear optimizaiton 등을 배워볼 예정이다. Mathmetical optimization f0(x) 라는 특정 object...

더보기

Product of Array Except Self

CREATED TIME: Feb 04, 2020 11:07 PM UPDATED TIME: Feb 06, 2020 5:15 PM 난이도: Medium class Solution { public: vector productExceptSelf(vector& nums) { vector left(nums.size()); vector right(nums.size()); vector res(nums.size()); left[0] = nums[0]; right[nums.size() - 1] = nums[n...

더보기