ポンクモン



マイコード


// 조합구하는 함수
function combination(arr, selectNum) {
  const result = []
  if (selectNum === 1) return arr.map((v) => [v])
  arr.forEach((v, idx, arr) => {
    const fixed = v
    const restArr = arr.slice(idx + 1)
    const combinationArr = combination(restArr, selectNum - 1)
    const combineFix = combinationArr.map((v) => [fixed, ...v])
    result.push(...combineFix)
  })
  return result
}


function solution(nums) {
  var answer = -1000

  var selec = nums.length / 2

  var tt = selec + nums.length - 1

  var temp = combination(nums, selec)
  
  
  const res = []
  
  //  조합에서 중복을 제거하는 반복문
  for (let i = 0; i < temp.length; i++) {
    const setTt = new Set(temp[i])
    const tt = [...setTt]
    const max = tt.length
    if (max > answer) answer = max
  }

  return answer
}
これにより、ランタイムエラーが発生しました.

他人のコード

function solution(nums) {
  var answer = -1000

  const tt = new Set()

  for (const number of nums) {
    tt.add(number)
  }

  if (tt.size < nums.length / 2) {
    answer = tt.size
  } else {
    answer = nums.length / 2
  }

  return answer
}

solution([3, 3, 3, 2, 2, 4])

変数を直接Setとして指定すると、addは重複除外とともに増加する可能性があります.
重複をなくすsizeで値を求めればよい