754. Reach a Number

LeetCode medium original: C# #csharp #leetcode #math #medium #string
O texto da tarefa é traduzido do russo para o idioma selecionado. O código permanece sem alterações.

Вы стоите в позиции 0 на бесконечной numberвой прямой. В позиции target находится пункт назначения. Вы можете сделать некоторое количество ходов numMoves так, чтобы: на каждом ходу вы могли пойти либо налево, либо направо. Во время i-го хода (начиная с i == 1 до i == numMoves) вы делаете i шагов в выбранном направлении. given inteiro target, return минимальное количество ходов (т.е. минимальное numMoves), необходимое для достижения пункта назначения.

Exemplo:

Input: target = 2

Output: 3

C# solução

correspondente/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++ solução

rascunho 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 solução

correspondente/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 solução

correspondente/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 solução

correspondente/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 solução

correspondente/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.

😎

Vacancies for this task

vagas ativas with overlapping task tags are mostradas.

Todas as vagas
Ainda não há vagas ativas.