From e9fb296dd5cc9eaac1160ada2598b87a536a3fde Mon Sep 17 00:00:00 2001 From: fluttermiddlepodcast Date: Fri, 21 Mar 2025 09:02:20 +0300 Subject: [PATCH] added "2150. Find All Lonely Numbers in the Array" --- README.md | 17 +++++------ .../find_all_lonely_numbers_in_the_array.dart | 17 +++++++++++ ..._all_lonely_numbers_in_the_array_test.dart | 28 +++++++++++++++++++ 3 files changed, 54 insertions(+), 8 deletions(-) create mode 100644 lib/medium/find_all_lonely_numbers_in_the_array.dart create mode 100644 test/medium/find_all_lonely_numbers_in_the_array_test.dart diff --git a/README.md b/README.md index 16c6714..b3d61a5 100644 --- a/README.md +++ b/README.md @@ -32,14 +32,15 @@ Solutions from [LeetCode](https://leetcode.com) on Dart. ## Medium -| Name | LeetCode | Solution | -| -------------------------------------- | ----------------------------------------------------------------------- | ---------------------------------------------------------- | -| 12. Integer to Roman | [Link](https://leetcode.com/problems/integer-to-roman/) | [Link](./lib/medium/integer_to_roman.dart) | -| 222. Count Complete Tree Nodes | [Link](https://leetcode.com/problems/count-complete-tree-nodes/) | [Link](./lib/medium/count_complete_tree_nodes.dart) | -| 230. Kth Smallest Element in a BST | [Link](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) | [Link](./lib/medium/kth_smallest_element_in_a_bst.dart) | -| 328. Odd Even Linked List | [Link](https://leetcode.com/problems/odd-even-linked-list/) | [Link](./lib/medium/odd_even_linked_list.dart) | -| 1325. Delete Leaves With a Given Value | [Link](https://leetcode.com/problems/delete-leaves-with-a-given-value/) | [Link](./lib/medium/delete_leaves_with_a_given_value.dart) | -| 1670. Design Front Middle Back Queue | [Link](https://leetcode.com/problems/design-front-middle-back-queue/) | [Link](./lib/medium/design_front_middle_back_queue.dart) | +| Name | LeetCode | Solution | +| ------------------------------------------ | --------------------------------------------------------------------------- | -------------------------------------------------------------- | +| 12. Integer to Roman | [Link](https://leetcode.com/problems/integer-to-roman/) | [Link](./lib/medium/integer_to_roman.dart) | +| 222. Count Complete Tree Nodes | [Link](https://leetcode.com/problems/count-complete-tree-nodes/) | [Link](./lib/medium/count_complete_tree_nodes.dart) | +| 230. Kth Smallest Element in a BST | [Link](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) | [Link](./lib/medium/kth_smallest_element_in_a_bst.dart) | +| 328. Odd Even Linked List | [Link](https://leetcode.com/problems/odd-even-linked-list/) | [Link](./lib/medium/odd_even_linked_list.dart) | +| 1325. Delete Leaves With a Given Value | [Link](https://leetcode.com/problems/delete-leaves-with-a-given-value/) | [Link](./lib/medium/delete_leaves_with_a_given_value.dart) | +| 1670. Design Front Middle Back Queue | [Link](https://leetcode.com/problems/design-front-middle-back-queue/) | [Link](./lib/medium/design_front_middle_back_queue.dart) | +| 2150. Find All Lonely Numbers in the Array | [Link](https://leetcode.com/problems/find-all-lonely-numbers-in-the-array/) | [Link](./lib/medium/find_all_lonely_numbers_in_the_array.dart) | ## Hard diff --git a/lib/medium/find_all_lonely_numbers_in_the_array.dart b/lib/medium/find_all_lonely_numbers_in_the_array.dart new file mode 100644 index 0000000..377c018 --- /dev/null +++ b/lib/medium/find_all_lonely_numbers_in_the_array.dart @@ -0,0 +1,17 @@ +class Solution { + List findLonely(List nums) { + var numsWithCount = {}; + for (var num in nums) { + numsWithCount[num] = (numsWithCount[num] ?? 0) + 1; + } + + var result = []; + for (var num in nums) { + if (numsWithCount[num] == 1 && !numsWithCount.containsKey(num - 1) && !numsWithCount.containsKey(num + 1)) { + result.add(num); + } + } + + return result; + } +} diff --git a/test/medium/find_all_lonely_numbers_in_the_array_test.dart b/test/medium/find_all_lonely_numbers_in_the_array_test.dart new file mode 100644 index 0000000..e94e2df --- /dev/null +++ b/test/medium/find_all_lonely_numbers_in_the_array_test.dart @@ -0,0 +1,28 @@ +import 'package:leetcode_dart/medium/find_all_lonely_numbers_in_the_array.dart'; +import 'package:test/test.dart'; + +void main() { + group( + 'Example tests', + () { + test( + 'First', + () => expect( + [10, 8], + Solution().findLonely( + [10, 6, 5, 8], + ), + ), + ); + test( + 'Second', + () => expect( + [1, 5], + Solution().findLonely( + [1, 3, 5, 3], + ), + ), + ); + }, + ); +}