Skip to content

Commit a51e9c2

Browse files
committed
2024-11-04 v. 6.9.5: updated tests for "382. Linked List Random Node"
1 parent 2ff1f78 commit a51e9c2

File tree

4 files changed

+42
-1
lines changed

4 files changed

+42
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,3 +560,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
560560
| 377. Combination Sum IV | [Link](https://leetcode.com/problems/combination-sum-iv/) | [Link](./lib/medium/377_combination_sum_iv.rb) | [Link](./test/medium/test_377_combination_sum_iv.rb) |
561561
| 378. Kth Smallest Element in a Sorted Matrix | [Link](https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/) | [Link](./lib/medium/378_kth_smallest_element_in_a_sorted_matrix.rb) | [Link](./test/medium/test_378_kth_smallest_element_in_a_sorted_matrix.rb) |
562562
| 380. Insert Delete GetRandom O(1) | [Link](https://leetcode.com/problems/insert-delete-getrandom-o1/) | [Link](./lib/medium/380_insert_delete_getrandom_o1.rb) | [Link](./test/medium/test_380_insert_delete_getrandom_o1.rb) |
563+
| 382. Linked List Random Node | [Link](https://leetcode.com/problems/linked-list-random-node/) | [Link](./lib/medium/382_linked_list_random_node.rb) | [Link](./test/medium/test_382_linked_list_random_node.rb) |

leetcode-ruby.gemspec

Lines changed: 1 addition & 1 deletion
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 = '6.9.4.1'
8+
s.version = '6.9.5'
99
s.license = 'MIT'
1010
s.files = ::Dir['lib/**/*.rb'] + %w[README.md]
1111
s.executable = 'leetcode-ruby'
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# frozen_string_literal: true
2+
3+
# https://leetcode.com/problems/linked-list-random-node/
4+
class Solution
5+
# @param {ListNode} head
6+
def initialize(head)
7+
@nodes = []
8+
9+
until head.nil?
10+
@nodes << head.val
11+
12+
head = head.next
13+
end
14+
end
15+
16+
# @return {Integer}
17+
def get_random = @nodes[rand(@nodes.size)]
18+
end
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# frozen_string_literal: true
2+
3+
require_relative '../test_helper'
4+
require_relative '../../lib/common/linked_list'
5+
require_relative '../../lib/medium/382_linked_list_random_node'
6+
require 'minitest/autorun'
7+
8+
class LinkedListRandomNodeTest < ::Minitest::Test
9+
def test_default_one
10+
solution = ::Solution.new(
11+
::ListNode.from_array(
12+
[1, 2, 3]
13+
)
14+
)
15+
16+
assert([1, 2, 3].include?(solution.get_random))
17+
assert([1, 2, 3].include?(solution.get_random))
18+
assert([1, 2, 3].include?(solution.get_random))
19+
assert([1, 2, 3].include?(solution.get_random))
20+
assert([1, 2, 3].include?(solution.get_random))
21+
end
22+
end

0 commit comments

Comments
 (0)