diff --git a/README.md b/README.md index 0e191672..9063ae30 100644 --- a/README.md +++ b/README.md @@ -136,3 +136,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/). | 653. Two Sum IV - Input is a BST | [Link](https://leetcode.com/problems/two-sum-iv-input-is-a-bst/) | [Link](./lib/easy/653_two_sum_iv_input_is_a_bst.rb) | | 657. Robot Return to Origin | [Link](https://leetcode.com/problems/robot-return-to-origin/) | [Link](./lib/easy/657_robot_return_to_origin.rb) | | 671. Second Minimum Node In a Binary Tree | [Link](https://leetcode.com/problems/second-minimum-node-in-a-binary-tree/) | [Link](./lib/easy/671_second_minimum_node_in_a_binary_tree.rb) | +| 674. Longest Continuous Increasing Subsequence | [Link](https://leetcode.com/problems/longest-continuous-increasing-subsequence/) | [Link](./lib/easy/674_longest_continuous_increasing_subsequence.rb) | diff --git a/leetcode-ruby.gemspec b/leetcode-ruby.gemspec index aef5eafb..ef8e4afa 100644 --- a/leetcode-ruby.gemspec +++ b/leetcode-ruby.gemspec @@ -5,7 +5,7 @@ require 'English' ::Gem::Specification.new do |s| s.required_ruby_version = '>= 3.0' s.name = 'leetcode-ruby' - s.version = '1.3.0' + s.version = '1.3.1' s.license = 'MIT' s.files = ::Dir['lib/**/*.rb'] + %w[bin/leetcode-ruby README.md LICENSE] s.executable = 'leetcode-ruby' diff --git a/lib/easy/674_longest_continuous_increasing_subsequence.rb b/lib/easy/674_longest_continuous_increasing_subsequence.rb new file mode 100644 index 00000000..cf346b66 --- /dev/null +++ b/lib/easy/674_longest_continuous_increasing_subsequence.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# https://leetcode.com/problems/longest-continuous-increasing-subsequence/ +# @param {Integer[]} nums +# @return {Integer} +def find_length_of_lcis(nums) + result = 0 + max = 1 + (1...nums.length).step(1) do |i| + if nums[i - 1] < nums[i] + max += 1 + else + result = max if max > result + max = 1 + end + end + + [result, max].max +end diff --git a/test/easy/test_674_longest_continuous_increasing_subsequence.rb b/test/easy/test_674_longest_continuous_increasing_subsequence.rb new file mode 100644 index 00000000..de0add24 --- /dev/null +++ b/test/easy/test_674_longest_continuous_increasing_subsequence.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +require_relative '../test_helper' +require_relative '../../lib/easy/674_longest_continuous_increasing_subsequence' +require 'minitest/autorun' + +class LongestContinuousIncreasingSubsequenceTest < ::Minitest::Test + def test_default + assert_equal( + 3, + find_length_of_lcis( + [1, 3, 5, 4, 7] + ) + ) + assert_equal( + 1, + find_length_of_lcis( + [2, 2, 2, 2, 2] + ) + ) + end +end