C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のシーケンスで欠落している番号を検索します


リストを設定します。

List<int> myList = new List<int>(){1, 2, 3, 5, 8, 9};

ここで、最初と最後の要素を取得します-

int a = myList.OrderBy(x => x).First();
int b = myList.OrderBy(x => x).Last();

新しいリストで、すべての要素を取得し、Exceptを使用して欠落している番号を取得します-

List<int> myList2 = Enumerable.Range(a, b - a + 1).ToList();
List<int> remaining = myList2.Except(myList).ToList();

完全なコードを見てみましょう-

using System.Collections.Generic;
using System;
using System.Linq;

public class Program {
   public static void Main() {
      List<int> myList = new List<int>(){1, 2, 3, 5, 8, 9};
      Console.WriteLine("Numbers... ");
      foreach(int val in myList) {
         Console.WriteLine(val);
      }
      int a = myList.OrderBy(x => x).First();
      int b = myList.OrderBy(x => x).Last();
      List<int> myList2 = Enumerable.Range(a, b - a + 1).ToList();
      List<int> remaining = myList2.Except(myList).ToList();
      Console.WriteLine("Remaining numbers... ");
      foreach (int res in remaining) {
         Console.WriteLine(res);
      }
   }
}

出力

Numbers...
1
2
3
5
8
9
Remaining numbers...
4
6
7

  1. C++の配列で最も近い数を検索します

    n個の要素を持つ配列Aがあるとします。そして、要素はソートされます。与えられた整数に最も近い値を見つける必要があります。配列に重複する値と負の数が含まれている可能性があります。したがって、配列が[2、5、6、7、8、8、9]のようで、ターゲット番号が4の場合、最も近い要素は5です。 与えられた配列をトラバースすることでこれを解決し、現在の要素とすべての要素の絶対差を追跡できます。最後に、絶対差が最小の要素を返します。 例 #include<iostream> #include<list> using namespace std; int getNearest(int

  2. C++で有理数のLCMを見つける

    ここでは、有理数のLCMを見つける方法を説明します。有理数のリストがあります。リストが{2/7、3 / 14、5 / 3}のようであるとすると、LCMは30/1になります。 この問題を解決するには、すべての分子のLCMを計算し、次にすべての分母のgcdを計算し、次に有理数のLCMを計算する必要があります- $$ LCM =\ frac {LCM \:of \:all \:𝑛𝑢𝑚𝑒𝑟𝑎𝑡𝑜𝑟𝑠} {GCD \:of \:all \:𝑑𝑒𝑛𝑜𝑚𝑖𝑖 例 #include <iostream> #include <vector> #inc