[Codility] 5. MinAvgTwoSlice
5703 ワード
[Codility] 5. MinAvgTwoSlice
質問リンク
MinAvgTwoSlice
問題の概要
長さN、整数の配列Aおよび範囲0<=PAの中で最小平均値の範囲の開始位置(P)を求めます.
要求
N is an integer within the range [2..100,000]
each element of array A is an integer within the range [−10,000..10,000]
コード#コード#
2時間も理解できなかったのでグーグルをしました.
コメントリンク a<=bの場合、aとbの平均値はa以上である. (ただし、a=bの場合、aおよびbの平均値はaまたはb) .(a+b)<=(c+d)の場合、(a,b)と(c,d)の平均値は(a+b)以上である. すなわち、大きいから小さいまでの割当数を等しくすることが平均である. は、最終的に、要素が4つ(a,b,c,d)の成分が(a,b)および(c,d)である場合、各群の平均値はより小さい. 2人のグループを考えると4つのグループは確認不要!! 例外の場合、2つのグループと1つのグループを3つのグループで決定する必要があります.
問題の所与の条件(P<=QではなくP
public func solution(_ A : inout [Int]) -> Int {
var minAvg: Double = 0.0
var minIdx = Int()
var flagVal: Double = 0.0
minAvg = Double(A[0] + A[1]) / 2.0
for i in 2..<A.count {
flagVal = Double(A[i-2]+A[i-1]+A[i]) / 3.0
if(minAvg > flagVal) {
minAvg = flagVal
minIdx = i-2
}
flagVal = Double(A[i-1] + A[i]) / 2.0
if(minAvg > flagVal) {
minAvg = flagVal
minIdx = i-1
}
}
return minIdx
}
Reference
この問題について([Codility] 5. MinAvgTwoSlice), 我々は、より多くの情報をここで見つけました
https://velog.io/@iseeu95/Codility-5.-MinAvgTwoSlice
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
要求
N is an integer within the range [2..100,000]
each element of array A is an integer within the range [−10,000..10,000]
コード#コード#
2時間も理解できなかったのでグーグルをしました.
コメントリンク
問題の所与の条件(P<=QではなくP
public func solution(_ A : inout [Int]) -> Int { var minAvg: Double = 0.0 var minIdx = Int() var flagVal: Double = 0.0 minAvg = Double(A[0] + A[1]) / 2.0 for i in 2..<A.count { flagVal = Double(A[i-2]+A[i-1]+A[i]) / 3.0 if(minAvg > flagVal) { minAvg = flagVal minIdx = i-2 } flagVal = Double(A[i-1] + A[i]) / 2.0 if(minAvg > flagVal) { minAvg = flagVal minIdx = i-1 } } return minIdx }
Reference
この問題について([Codility] 5. MinAvgTwoSlice), 我々は、より多くの情報をここで見つけました https://velog.io/@iseeu95/Codility-5.-MinAvgTwoSliceテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol