CSharp 实现数组中重复的数字 源代码
时间: 2024-04-17 12:15:52 浏览: 9
你好,以下是 CSharp 实现数组中重复的数字的源代码:
using System;
class Program {
static int FindDuplicate(int[] nums) {
int n = nums.Length;
for (int i = 0; i < n; i++) {
int index = nums[i] % n;
if (nums[index] >= n) {
return index;
}
nums[index] += n;
}
return -1;
}
static void Main() {
int[] arr = new int[] {1, 3, 4, 2, 2};
int dup = FindDuplicate(arr);
Console.WriteLine($"数组中重复的数字是: {dup}");
}
}
希望能帮到你!
相关问题
CSharp 实现数组中出现次数超过一半的数字 源代码
好的,这是一个关于CSharp实现数组中出现次数超过一半的数字的代码:
```
using System;
class Program
{
static void Main()
{
int[] arr = { 1, 2, 3, 4, 5, 5, 5, 5, 5 };
int n = arr.Length;
int majorityElement = MajorityElement(arr, n);
if (majorityElement != -1)
{
Console.WriteLine($"The majority element is {majorityElement}");
}
else
{
Console.WriteLine("No majority element found");
}
}
static int MajorityElement(int[] arr, int n)
{
int count = 1;
int majorityElement = arr[0];
for (int i = 1; i < n; i++)
{
if (count == 0)
{
majorityElement = arr[i];
count = 1;
}
else if (arr[i] == majorityElement)
{
count++;
}
else
{
count--;
}
}
count = 0;
for (int i = 0; i < n; i++)
{
if (arr[i] == majorityElement)
{
count++;
}
if (count > n / 2)
{
return majorityElement;
}
}
return -1;
}
}
```
希望能帮到你!现在,您有什么其他问题吗?
CSharp 实现有序数组中查找数字的范围 源代码
请看以下C#源代码:
```csharp
public static int[] SearchRange(int[] nums, int target) {
int left = 0, right = nums.Length - 1;
int start = -1, end = -1;
// 找出数字范围的起始位置
while(left <= right) {
int mid = (left + right) / 2;
if(nums[mid] >= target) {
right = mid - 1;
if(nums[mid] == target) {
start = mid;
}
} else {
left = mid + 1;
}
}
// 如果数组中没有目标数字,直接返回[-1, -1]
if(start == -1) {
return new int[]{-1, -1};
}
// 找出数字范围的结束位置
left = start;
right = nums.Length - 1;
while(left <= right) {
int mid = (left + right) / 2;
if(nums[mid] <= target) {
left = mid + 1;
if(nums[mid] == target) {
end = mid;
}
} else {
right = mid - 1;
}
}
return new int[]{start, end};
}
```
这段代码实现了在有序数组中查找数字的范围,可以找出目标数字在数组中出现的起始位置和结束位置。