Défi Codingbat : solution d'API de flux zeroMax

Eugène Khlebnikov

Étant donné la tâche zeroMax zeroMax de CodingBat :

Renvoie une version du tableau donné où chaque valeur zéro dans le tableau est remplacée par la plus grande valeur impaire à droite du zéro dans le tableau. S'il n'y a pas de valeur impaire à droite du zéro, laissez le zéro comme zéro.

zeroMax([0, 5, 0, 3]) → [5, 5, 3, 3]
zeroMax([0, 4, 0, 3]) → [3, 4, 3, 3]
zeroMax([0, 1, 0]) → [1, 1, 0]

Ma solution à cette tâche passe tous les tests sur CodingBat :

public int[] zeroMax(int[] nums) {
  boolean containsZero = java.util.stream.IntStream.of(nums).anyMatch(x -> x == 0);
  if (!containsZero) {
    return nums;
  }
  
  int[] zeroMax = new int[nums.length];
  int largestOddRight = 0;
  
  for (int i = 0; i < nums.length; i++) {
    if (nums[i] == 0) {
      for (int j = i+1; j < nums.length; j++) {
        if (nums[j] % 2 != 0) {
          if (nums[j] > largestOddRight) {
            largestOddRight = nums[j];
          }
        }
      }
      zeroMax[i] = largestOddRight;
      largestOddRight = 0;
    } else {
      zeroMax[i] = nums[i];
    }
    
  }
  
  return zeroMax;
}

Mais j'ai la question suivante :

Comment est-il possible de résoudre cette tâche en utilisant Stream API ?

Résultats de test

Érythréen

Diffusez sur les indices de votre tableau, vérifiez si l'élément actuel est égal à zéro, sinon mappez-le sur lui-même, si oui, diffusez à nouveau sur le reste de votre tableau à partir de la position actuelle en utilisant Arrays.stream(array, from, to)les cotes du filtre, trouvez un maximum facultatif, si facultatif présent retourne ça orElse retourne l'élément courant

public int[] zeroMax(int[] nums){
    boolean containsZero = java.util.stream.IntStream.of(nums).anyMatch(x -> x == 0);
    if (!containsZero) {
        return nums;
    }

    return java.util.stream.IntStream.range(0, nums.length).map(
            i -> nums[i] != 0 ? nums[i] : Arrays.stream(nums, i, nums.length)
                                                .filter(j -> j % 2 == 1)
                                                .max()
                                                .orElse(nums[i]))
            .toArray();
}

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

Défi Codingbat : solution d'API de flux sumNumbers

Défi Codingbat : solution d'API de flux sameEnds

Défi Codingbat : solution d'API zeroFront Stream

Défi Codingbat : maxBlock

Défi Codingbat : mirrorEnds utilisant l'API Stream

Array-2 zeromax codingbat

Codingbat challenge: mirrorEnds Stream API Solution

kafka new api 0.10 ne fournit pas de liste d'objets de flux et de consommateurs par sujet

Variables d'opérateur personnalisées de flux d'air

Création d'une abstraction de flux de fichiers

Déterminer si la recherche de support de flux PHP

Comment aborder ce défi de codage ?

Julia Flux: déterminer le type de couche

рекурсивное упражнение по codingbat

Рекурсия codingbat

traitement dans le désordre d'un flux d'entrée à l'aide de Reactor

Suppression d'objets de GCS à l'aide d'un flux d'air correspondant à un modèle

Valeur par défaut de sla dans la tâche de flux d'air

Comment obtenir correctement les pointeurs de position de fichier / flux en C ++ pour un flux d'entrée / sortie?

Comment définir la propriété d'un objet à l'aide de flux

Как обрабатывать вложенные ответы API в приложении Flux?

Problème d'analyse de flux dans les champs de mise à jour

comment émettre de la valeur à partir d'un objet de flux construit

Impossible de déterminer le type de retour pour le flux grpc

comment ajouter le résultat de la relation de flux de sortie du processeur executestreamcommand dans le fichier de flux d'origine dans nifi

java.lang.NoClassDefFoundError: Échec de la résolution de: Classe d'application sur Lenovo K4 Note exécutant Android 6, API 23

Syntaxe du flux d'entrée

Plusieurs flux d'authentification dans Apache

Impossible de générer le code d'autorisation via le flux PKCE pour SPA

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  3. 3

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  4. 4

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  5. 5

    How to click an array of links in puppeteer?

  6. 6

    Merging legends in plotly subplot

  7. 7

    ViewPager2 мигает / перезагружается при смахивании

  8. 8

    Отчеты Fabric Debug Craslytic: регистрация, отсутствует идентификатор сборки, применить плагин: io.fabric

  9. 9

    How to normalize different curves drawn with geom = "step" when using stat_summary

  10. 10

    无法通过Vue在传单中加载pixiOverlay

  11. 11

    как я могу удалить vue cli 2?

  12. 12

    Как я могу нарисовать заполненный прямоугольник в JFreeChart?

  13. 13

    SQL Вычтите две строки друг от друга в одном столбце, чтобы получить результат

  14. 14

    Elasticsearch - Нечеткий поиск не дает предложения

  15. 15

    Single legend for Plotly subplot for line plots created from two data frames in R

  16. 16

    Описание моего типа Parser как серии преобразователей монад

  17. 17

    Как изменить цвета запятых и скобок в VS Code

  18. 18

    Сброс значения <input type = "time"> в Firefox

  19. 19

    Почему прокси в vue.config.js 404

  20. 20

    Как установить параметр -noverify с gradle ktx для робоэлектрических тестов Android?

  21. 21

    В чем разница между ifstream, ofstream и fstream?

популярныйтег

файл