ostatnio spotkałem się z pytaniem takim jak:
Założono, że masz int N, a także masz int [] i każdy element w tej tablicy może tylko być użyty raz. Musimy zaprojektować algorytm, aby uzyskać od 1 do N, dodając te liczby i ostatecznie zwracając najmniejsze liczby, które musimy dodać.
Na przykład:Jak poznać najmniejszą liczbę, którą powinniśmy dodać, aby uzyskać pełną tablicę
N = 6, array is [1,3]
1 : we already have.
2 : we need to add it to the array.
3 : we can get it by doing 1 + 2.
4: 1 + 3.
5 : 2 + 3.
6 : 1 + 2 + 3.
So we just need to add 2 to our array and finally we return 1.
myślę o rozwiązywaniu tego za pomocą DFS. Czy masz lepsze rozwiązania? Dzięki!
nie wiem granic, można użyć brutalnej siły (nie dobrze), można dokonać numery z co najwyżej N/2 numerów, można to udowodnić, numery od 1 ...N/2 –
Tak, myślę, że brutalna siła zadziała, ale nadal zastanawiam się, czy są jakieś lepsze rozwiązania: D – yilia
zależy od problemów związanych, istnieje rozwiązanie dp dla tego problemu –