754. Reach a Number
Вы стоите в позиции 0 на бесконечной numberвой прямой. В позиции target находится пункт назначения. Вы можете сделать некоторое количество ходов numMoves так, чтобы: на каждом ходу вы могли пойти либо налево, либо направо. Во время i-го хода (начиная с i == 1 до i == numMoves) вы делаете i шагов в выбранном направлении. given entero target, return минимальное количество ходов (т.е. минимальное numMoves), необходимое для достижения пункта назначения.
Ejemplo:
Input: target = 2
Output: 3
C# solución
coincidente/originalpublic class Solution {
public int ReachTarget(int target) {
target = Math.Abs(target);
int position = 0;
int steps = 0;
while (position < target || (position - target) % 2 != 0) {
steps++;
position += steps;
}
return steps;
}
}
C++ solución
borrador automático, revisar antes de enviar#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public int ReachTarget(int target) {
target = abs(target);
int position = 0;
int steps = 0;
while (position < target || (position - target) % 2 != 0) {
steps++;
position += steps;
}
return steps;
}
}
Java solución
coincidente/originalpublic class Solution {
public int reachTarget(int target) {
target = Math.abs(target);
int position = 0;
int steps = 0;
while (position < target || (position - target) % 2 != 0) {
steps++;
position += steps;
}
return steps;
}
JavaScript solución
coincidente/originalfunction reachTarget(target) {
target = Math.abs(target);
let position = 0;
let steps = 0;
while (position < target || (position - target) % 2 !== 0) {
steps += 1;
position += steps;
}
return steps;
}
Python solución
coincidente/originaldef reachTarget(target):
target = abs(target)
position = 0
steps = 0
while position < target or (position - target) % 2 != 0:
steps += 1
position += steps
return steps
Go solución
coincidente/originalpackage main
import (
"fmt"
"math"
)
func reachTarget(target int) int {
target = int(math.Abs(float64(target)))
position := 0
steps := 0
for position < target || (position - target) % 2 != 0 {
steps++
position += steps
}
return steps
}
Algorithm
Инициализируйте переменную для текущей позиции (position) и счетчик шагов (steps).
Используйте цикл, чтобы добавлять к position текущее количество шагов и увеличивать steps.
Если position достигает или превышает target и разница между position и target четная, остановите цикл и return steps.
😎
Vacantes para esta tarea
Se muestran vacantes activas con etiquetas coincidentes.