From 7a5c1b8799ccb2cee995cde8146d5e2dc7474d0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Velimir=20=C4=90urkovi=C4=87?= Date: Tue, 18 Feb 2025 23:55:44 +0100 Subject: [PATCH] feat: add solution to lc problem: No.0034 --- .../README.md | 25 +++++++++++++++++++ .../README_EN.md | 25 +++++++++++++++++++ .../Solution.cs | 20 +++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/Solution.cs diff --git a/solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/README.md b/solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/README.md index 361728caaea79..30c5a25b9f808 100644 --- a/solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/README.md +++ b/solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/README.md @@ -211,6 +211,31 @@ var searchRange = function (nums, target) { }; ``` +#### C# + +```cs +public class Solution { + public int[] SearchRange(int[] nums, int target) { + int l = Search(nums, target); + int r = Search(nums, target + 1); + return l == r ? new int[] {-1, -1} : new int[] {l, r - 1}; + } + + private int Search(int[] nums, int x) { + int left = 0, right = nums.Length; + while (left < right) { + int mid = (left + right) >>> 1; + if (nums[mid] >= x) { + right = mid; + } else { + left = mid + 1; + } + } + return left; + } +} +``` + #### PHP ```php diff --git a/solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/README_EN.md b/solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/README_EN.md index 491b8072d5031..2458ddc9bbc57 100644 --- a/solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/README_EN.md +++ b/solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/README_EN.md @@ -201,6 +201,31 @@ var searchRange = function (nums, target) { }; ``` +#### C# + +```cs +public class Solution { + public int[] SearchRange(int[] nums, int target) { + int l = Search(nums, target); + int r = Search(nums, target + 1); + return l == r ? new int[] {-1, -1} : new int[] {l, r - 1}; + } + + private int Search(int[] nums, int x) { + int left = 0, right = nums.Length; + while (left < right) { + int mid = (left + right) >>> 1; + if (nums[mid] >= x) { + right = mid; + } else { + left = mid + 1; + } + } + return left; + } +} +``` + #### PHP ```php diff --git a/solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/Solution.cs b/solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/Solution.cs new file mode 100644 index 0000000000000..b934d4277e689 --- /dev/null +++ b/solution/0000-0099/0034.Find First and Last Position of Element in Sorted Array/Solution.cs @@ -0,0 +1,20 @@ +public class Solution { + public int[] SearchRange(int[] nums, int target) { + int l = Search(nums, target); + int r = Search(nums, target + 1); + return l == r ? new int[] {-1, -1} : new int[] {l, r - 1}; + } + + private int Search(int[] nums, int x) { + int left = 0, right = nums.Length; + while (left < right) { + int mid = (left + right) >>> 1; + if (nums[mid] >= x) { + right = mid; + } else { + left = mid + 1; + } + } + return left; + } +} \ No newline at end of file