• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pytanie - Unique Paths

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
33 wizyt
pytanie zadane 5 dni temu w C i C++ przez Dani Użytkownik (650 p.)

Cześć robię kod dla zadania : https://leetcode.com/problems/unique-paths/description/

Pierwszy kod działa poprawnie, a drugi już nie. Dlaczego tak jest?

//Działający kodzik:
#include <iostream>
#include <unordered_map>
#include <string>

using namespace std;
string key;

int uniquePaths(int m,int n, unordered_map<string, int> memoization) {
	key = to_string(m) + ',' + to_string(n);
	if (memoization.find(key) != memoization.end()) return memoization[key];
	if (m == 1 && n == 1)
		return 1;
	if (m == 0 || n == 0)
		return 0;
	memoization[key] = uniquePaths(m - 1, n, memoization) + uniquePaths(m, n - 1, memoization);
	return memoization[key];
}

int main()
{
	int m, n;
	cin >> m >> n;
	unordered_map<string, int> memoization;
	cout << uniquePaths(m, n,memoization) << '\n';
	return 0;
}
//Kod nie działa:
#include <iostream>
#include <unordered_map>

using namespace std;
string key;
unordered_map<string, int> memoization;

int uniquePaths(int m,int n) {
	key = m + ',' + n;
	if (memoization.find(key) != memoization.end()) return memoization[key];
	if (m == 1 && n == 1)
		return 1;
	if (m == 0 || n == 0)
		return 0;
	memoization[key] = uniquePaths(m - 1, n) + uniquePaths(m, n - 1);
	cout << memoization[key] << '\n';
	return memoization[key];
}

int main()
{
	int m, n;
	cin >> m >> n;
	//unordered_map<string, int> memoization;
	cout << uniquePaths(m, n) << '\n';
	return 0;
}

 

komentarz 5 dni temu przez Oscar Nałogowiec (27,850 p.)

Modyfikujesz w funkcji memoization - raz jest to parametr (lokalna kopia) i modyfikacje są lokalne (co to dokładnie znaczy w przypadku takiego obiektu - nie wiadomo, zależy jak jest kopiowany) a w drugim przypadku jest zmienną globalną - zawsze działasz na tym samym obiekcie, zmiany są w nim widoczne.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 54 wizyt
pytanie zadane 5 dni temu w C i C++ przez Dani Użytkownik (650 p.)
0 głosów
1 odpowiedź 39 wizyt
pytanie zadane 5 dni temu w JavaScript przez Dani Użytkownik (650 p.)
0 głosów
1 odpowiedź 59 wizyt
pytanie zadane 28 października 2022 w JavaScript przez chrystian Gaduła (4,690 p.)

90,298 zapytań

138,894 odpowiedzi

311,080 komentarzy

60,012 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...