アルゴリズムは書きます.行列を並べて階段を進める.JavaScriptとJavaを実現します.
1685 ワード
配列は重くなり、O(n)の複雑さが要求され、入力された配列は以下のようになり、重複したidを除去し、最大のwを保持し、元の順序を変更しないように要求される.
O(n)複雑さが要求されるので、ES 6 Mapオブジェクト(ハッシュテーブルと同様)が使用され、元の配列を変更する代わりに新しい配列が返される(要素を削除すると、他の要素の下付きを移動する).今はまだ二つの問題があります.1.Mapオブジェクトを使うと元素の順序が保証できません.2.行列を出力するためには、Mapオブジェクトを巡回します.
Javaの中の集合類Linked HashMapを使って元素の順序の問題を解決したいですが、Javaが一つの対象配列のテスト用例を生成するのが面倒で、長い間苦労しました.テスト用例を生成して無理に実現しました.論理コードの後で補充します.
const union = [
{ id: 1, w: 1 },
{ id: 2, w: 4 },
{ id: 1, w: 2 },
{ id: 2, w: 6 }
]
JavaScript実現O(n)複雑さが要求されるので、ES 6 Mapオブジェクト(ハッシュテーブルと同様)が使用され、元の配列を変更する代わりに新しい配列が返される(要素を削除すると、他の要素の下付きを移動する).今はまだ二つの問題があります.1.Mapオブジェクトを使うと元素の順序が保証できません.2.行列を出力するためには、Mapオブジェクトを巡回します.
function removeDuplicateElements(arr) {
let map = new Map();
let res = [];
for (let i=0; i
Java実現Javaの中の集合類Linked HashMapを使って元素の順序の問題を解決したいですが、Javaが一つの対象配列のテスト用例を生成するのが面倒で、長い間苦労しました.テスト用例を生成して無理に実現しました.論理コードの後で補充します.
package com.company;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class RemoveDuplicateElements {
public Map getElement(int id, int w) {
return Map.of("id",id, "w",w);
}
public List