Серьезно, я только начал изучать программирование, и попробовал литкод, решал я задачку 26. Remove Duplicates from Sorted Array. Но про то что я щас рассказываю происходит с любой задачей. Я просто не понимаю как нужно думать чтобы решить задачу, я сижу часами пытаюсь найти решение, рисую на бумаге, пытаюсь найти формулу, а теперь внимание, вот как я ее решил:
class Solution {
public int removeDuplicates(int[] nums) {
int k = 1;
int j = 0;
for (int i = 0; i < nums.length - 1; i++) {
j++;
if(nums[i] == nums[j]) continue;
k++;
}
for (int i = 0; i < k; i++) {
int rightPointer = i + 1;
if(rightPointer < nums.length && nums[i] == nums[rightPointer] ) {
for (int l = rightPointer + 1; l < nums.length; l++) {
if (nums[rightPointer] != nums[l]) {
nums[rightPointer] = nums[l];
rightPointer++;
}
}
}
}
return k;
}
}
а вот как ее решили остальные нормальные люди:
class Solution {
public int removeDuplicates(int[] arr) {
int i=0;
for(int j=1;j<arr.length;j++){
if(arr[i]!=arr[j]){
i++;
arr[i]=arr[j];
}
}
return i+1;
}
}
и думаю тут не надо разбираться чтобы понять что я просто все сделал медленно, через костыли, с большими затратами на время и память программы. И так у меня с любыми задачами. Я не знаю как нужно додуматься до такого результата, как в нижнем примере, я стараюсь все обдумать, переписываю код по несколько раз, но когда смотрю на обычный пример решения от других пользователей, это просто как плевок в лицо со словами "Вот видишь, нихрена ты не понял)" .Я просто отказываюсь верить в то, что я тупой, мне правда хочется научится ПРАВИЛЬНО ПОНИМАТЬ, для этого прошу у вас совета
корова, и ты будешь ее доитьзадача, твое решение, твоя цель, иди к ней и все. Решил кто-то лучше? Посмотри, учти на будущее, разбери что понравилось, намотай на ус и иди дальше. По самому топику "Как научиться ПРАВИЛЬНО думать", не знаю, что такое правильно думать, но тебе нужен инструментарий, опыт, навыки. По мере прохождения курса, решения задач, он у тебя появиться. Со временем, ты сам поймешь, что тебе не хватает, и будешь знать, где и как тебе это добрать. Поэтому больше веры в себя и самое главное это движение вперед, самое длинное и крутое путешествие состоит из маленьких шагов. Не позволяй никому и ничему вынудить тебя остановиться, и стоять на месте из-за каких-то фантазий о "нормальных других" или "нормальном мышлении", Есть задача? Ищи решение, думай, спрашивай, решай. Решил? молодец, есть время/желание, можешь разобрать или оптимизировать, нет времени, идешь дальше. Это твои шаги, это главное, это движение вперед, идти вперед задача за задачей. Все что нужно ты в дороге соберешь.