Skip to content

Commit 2be755b

Browse files
authored
Merge pull request #633 from fartem/2460_Apply_Operations_to_an_Array
2024-05-28 v. 5.7.6: added "2460. Apply Operations to an Array"
2 parents b6c32cb + 851a53e commit 2be755b

File tree

4 files changed

+46
-1
lines changed

4 files changed

+46
-1
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -436,3 +436,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
436436
| 2441. Largest Positive Integer That Exists With Its Negative | [Link](https://leetcode.com/problems/largest-positive-integer-that-exists-with-its-negative/) | [Link](./lib/easy/2441_largest_positive_integer_that_exists_with_its_negative.rb) |
437437
| 2446. Determine if Two Events Have Conflict | [Link](https://leetcode.com/problems/determine-if-two-events-have-conflict/) | [Link](./lib/easy/2446_determine_if_two_events_have_conflict.rb) |
438438
| 2455. Average Value of Even Numbers That Are Divisible by Three | [Link](https://leetcode.com/problems/average-value-of-even-numbers-that-are-divisible-by-three/) | [Link](./lib/easy/2455_average_value_of_even_numbers_that_are_divisible_by_three.rb) |
439+
| 2460. Apply Operations to an Array | [Link](https://leetcode.com/problems/apply-operations-to-an-array/) | [Link](./lib/easy/2460_apply_operations_to_an_array.rb) |

leetcode-ruby.gemspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ require 'English'
55
::Gem::Specification.new do |s|
66
s.required_ruby_version = '>= 3.0'
77
s.name = 'leetcode-ruby'
8-
s.version = '5.7.5'
8+
s.version = '5.7.6'
99
s.license = 'MIT'
1010
s.files = ::Dir['lib/**/*.rb'] + %w[bin/leetcode-ruby README.md LICENSE]
1111
s.executable = 'leetcode-ruby'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# frozen_string_literal: true
2+
3+
# https://leetcode.com/problems/apply-operations-to-an-array/
4+
# @param {Integer[]} nums
5+
# @return {Integer[]}
6+
def apply_operations(nums)
7+
n = nums.length
8+
result = ::Array.new(n, 0)
9+
10+
return result if n.zero?
11+
12+
p = 0
13+
(0...(n - 1)).each do |i|
14+
curr = nums[i]
15+
16+
if curr == nums[i + 1] && curr.positive?
17+
nums[i] *= 2
18+
result[p] = nums[i]
19+
nums[i + 1] = 0
20+
21+
p += 1
22+
elsif curr.positive?
23+
result[p] = curr
24+
25+
p += 1
26+
end
27+
end
28+
29+
result[p] = nums.last if nums.last.positive?
30+
31+
result
32+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# frozen_string_literal: true
2+
3+
require_relative '../test_helper'
4+
require_relative '../../lib/easy/2460_apply_operations_to_an_array'
5+
require 'minitest/autorun'
6+
7+
class ApplyOperationsToAnArrayTest < ::Minitest::Test
8+
def test_default
9+
assert_equal([1, 4, 2, 0, 0, 0], apply_operations([1, 2, 2, 1, 1, 0]))
10+
assert_equal([1, 0], apply_operations([0, 1]))
11+
end
12+
end

0 commit comments

Comments
 (0)