Codingbat チャレンジ: notAlone ストリーム API ソリューション

ユージーン・フレブニコフ

CodingBatからタスクnotAloneが与えられた場合:

配列内の要素の前後に値があり、それらの値が異なる場合、その要素は「単独」であると言えます。指定された配列のバージョンを返します。指定された値のすべてのインスタンスが、その左または右のいずれか大きい方の値に置き換えられます。

notAlone([1, 2, 3], 2) → [1, 3, 3]
notAlone([1, 2, 3, 2, 5, 2], 2) → [1, 3, 3, 5, 5, 2]
notAlone([3, 4], 3) → [3, 4]

この問題に対する私の解決策は、大部分のテストに合格しますが、すべてではありません。

public int[] notAlone(int[] nums, int val) {
  int[] notAlone = new int[nums.length];
  int largestNeighbour = 0;
  
  if (notAlone.length >= 1) {
    notAlone[0] = nums[0];
    notAlone[notAlone.length - 1] = nums[nums.length - 1];
  }
  
  for (int i = 1; i < notAlone.length - 1; i++) {
    if (nums[i] != val) {
      notAlone[i] = nums[i];
    }
    
    if (nums[i] == val) {
      notAlone[i] = Math.max(nums[i - 1], nums[i + 1]);
    }
  }
  
  return notAlone;
}

私の質問は次のとおりです。

解決策を修正するにはどうすればよいですか?

Stream APIを使用してこのタスクを解決することは可能ですか?

試験結果

アレクサンダー・イヴァンチェンコ

配列内の要素は、その前後に値があり、それらの値がそれと異なる場合、「単独」です

現在の配列要素が単独であるかどうかをチェックしていないため、ソリューションはすべてのテストに合格しません。つまり、現在の要素がターゲット値と等しいかどうかのみをチェックしており、左または右。

これがストリームを使用して実行できる方法です。以下のコードはCodingBatのすべてのテストに合格します。

public int[] notAlone(int[] nums, int val) {
    return IntStream.range(0, nums.length)
        .map(i -> isAlone(nums, val, i) ?
            Math.max(nums[i - 1], nums[i + 1]) : nums[i])
        .toArray();
}

public boolean isAlone(int[] nums, int val, int i) {
    return nums[i] == val && i > 0 && i < nums.length - 1
        && nums[i - 1] != val && nums[i + 1] != val;
}

あなたが提供した命令コードは、そのように修正できます(すべてのテストに合格します):

public int[] notAlone(int[] nums, int val) {
    if (nums.length == 0) return nums; // guarding against an empty array
    
    int[] notAlone = new int[nums.length];
    notAlone[0] = nums[0];
    notAlone[nums.length - 1] = nums[nums.length - 1];
    
    for (int i = 1; i < notAlone.length - 1; i++) {
        if (nums[i] == val && nums[i - 1] != val && nums[i + 1] != val) { // is "alone"
            notAlone[i] = Math.max(nums[i - 1], nums[i + 1]);
        } else { // is not "alone"
            notAlone[i] = nums[i];
        }
    }
    
    return notAlone;
}

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

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

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

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

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

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

Java Codingbat notAlone - почему он не работает для этого конкретного примера

現在の最良のソリューションを返すCPLEXPython API

VisualStudioソリューションのGitリポジトリをリセット

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

Рекурсия codingbat

ソーシャライトリフレッシュトークン

動的計画法ソリューションの説明

パラメータに従って適切なストアドプロシージャを実行するソリューション

Codingbat challenge: mirrorEnds Stream API Solution

2次元配列を斜めにトラバースするためのBFSソリューション

Pandasデータフレームの列の順序と名前の変更-エレガントなソリューションは可能ですか?

未使用の出力パラメータ参照の1行ソリューション

Swift 2 iOS-作成日でソートされたファイルリストを取得-より簡潔なソリューション?

コンポジションAPIで動的に参照されたときに子コンポーネントがレンダリングされない

カスタムパーミッションエバリュエータースプリング

複数のプロジェクトソリューションをAzureにデプロイする

1Dペグソリティア用にソリューションを最適化

SPARQLフェデレーションクエリがすべてのソリューションを返さない

Défi Codingbat : solution d'API zeroFront Stream

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

Défi Codingbat : mirrorEnds utilisant l'API Stream

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

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

QObjectPickerがカスタムジオメトリメッシュとレンダラーで機能しない

DBSignは、ブラウザのみのソリューションで署名にスマートカード証明書をどのように使用しますか?

Pytest FlaskアプリケーションAttributeError:モジュール 'src.api'には属性 'test_client'がありません

R試験で英語以外の言語のソリューションを含む試験シートを作成する方法

アニメーションなしでコレクションビューをリロードSwift

Cプログラムでのキャリブレーション

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?

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

файл