いつもお世話になっております。
今日はある問題に関してお聞きしたいです。
ある問題の内容はこちらです。
ある配列がある。 その配列に含まれない数で最小の値を求めよ。 最小の値minは0より大きい数とする。 例 var numList = [1, 4, 6, 8, 10] この場合は2 var numList = [3, 5, 9, 11] この場合は1
個人的に書いたコードが以下になります。
変数名などがちょっとイケてないのであれですが、、、
javascript
1// 1から与えられた数字までの配列を作る 2// 5 → [1,2,3,4,5] 3var untilListFromMaxNumber = function(maxNum){ 4 var _tmpArray = []; 5 6 for(var i = 1; i <= maxNum; i++){ 7 _tmpArray.push(i) 8 } 9 10 return _tmpArray; 11} 12 13// 2つの配列で重複していない数字の配列をつくる 14var diffArray = function(arrayFromMaxNum, originalNumList){ 15 var _tmpArray = [] 16 for(var i = 1; i <= arrayFromMaxNum.length; i ++){ 17 if (originalNumList.indexOf(i) === -1) { 18 _tmpArray.push(i) 19 } 20 } 21 22 return _tmpArray; 23} 24 25 26// 当たられた配列 27var numList = [1, 3, 5, 7, 8, 9, 13, 16]; 28 29console.log('最小値を求める') 30console.log('与えられた数値は', numList) 31 32// 最大値を取得 33var maxNum = Math.max.apply(null, numList) 34 35console.log('最大値は', maxNum) 36 37var untilList = untilListFromMaxNumber(maxNum) 38 39console.log('最大値までの配列は', untilList) 40 41var filterdArray = diffArray(untilList, numList) 42 43console.log('上記2つの配列の差分は', filterdArray) 44console.log('この配列の最小値が最初の配列にない数字の最小値') 45 46var resultNum = Math.min.apply(null, filterdArray) 47 48console.log('最小値は', resultNum)
これをconsoleで実行すると以下の画像のようになります。
これはこれで出来てるのですが、漠然といけてないなあって思っていて、何かいい方法や書き方をいろんな方にご教示いただけないかなぁと思って投稿させて頂きました。
不適切な質問であったらすいません。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/27 03:30
2016/12/27 03:32