754. Reach a Number

LeetCode medium original: C# #csharp #leetcode #math #medium #string
El texto de la tarea se traduce del ruso para el idioma seleccionado. El código no cambia.

Вы стоите в позиции 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/original
public 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/original
public 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/original
function 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/original
def 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/original
package 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.

Todas las vacantes
Todavía no hay vacantes activas.