From 025638c3cc1291d1350edabc2e3c77a538e49010 Mon Sep 17 00:00:00 2001 From: sadcat Date: Fri, 10 May 2019 10:55:09 +0800 Subject: [PATCH 1/2] week4 #1 --- Week_04/id_113/leetcode_169.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Week_04/id_113/leetcode_169.rb diff --git a/Week_04/id_113/leetcode_169.rb b/Week_04/id_113/leetcode_169.rb new file mode 100644 index 00000000..272ea51b --- /dev/null +++ b/Week_04/id_113/leetcode_169.rb @@ -0,0 +1,23 @@ +# @param {Integer[]} nums +# @return {Integer} +def majority_element(nums) + return nums[0] if nums.length == 1 + + counter = {} + z = 0 + m = 0 + nums.each do |n| + if counter.key?(n) + counter[n] += 1 + if counter[n] > m + z = n + m = counter[n] + end + next + else + counter[n] = 1 + end + end + + z +end From d240b7ea2b88df165cc8857a74b16fd506754280 Mon Sep 17 00:00:00 2001 From: sadcat Date: Sun, 12 May 2019 00:52:10 +0800 Subject: [PATCH 2/2] week4 #2 --- Week_04/id_113/leetcode_742.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Week_04/id_113/leetcode_742.rb diff --git a/Week_04/id_113/leetcode_742.rb b/Week_04/id_113/leetcode_742.rb new file mode 100644 index 00000000..d72d6231 --- /dev/null +++ b/Week_04/id_113/leetcode_742.rb @@ -0,0 +1,20 @@ +# @param {Integer[]} cost +# @return {Integer} +def min_cost_climbing_stairs(cost) + m = [] + dp(cost.length, cost, m) +end + +def dp(n, cost, m) + return m[n] unless m[n].nil? + return 0 if n == -1 + return cost[0] if n == 0 + + c = n == cost.length ? 0 : cost[n] + m[n] = c + min(dp(n - 1, cost, m), dp(n - 2, cost, m)) + m[n] +end + +def min(*values) + values.min +end