/**
* 对于一个已排序的输入,计算唯一值的数量可以在常数时间和常数内存内完成。
* 这是该算法的一个简单实现。
*
* 值使用 `===` 进行比较,因此对象和非原始对象不会以任何特殊方式处理。
*
* @param {Array<*>} x 包含任意类型值的数组
* @returns {number} 唯一值的数量
* @example
* uniqueCountSorted([1, 2, 3]); // => 3
* uniqueCountSorted([1, 1, 1]); // => 1
*/
function uniqueCountSorted(x) {
let uniqueValueCount = 0;
let lastSeenValue;
for (let i = 0; i < x.length; i++) {
if (i === 0 || x[i] !== lastSeenValue) {
lastSeenValue = x[i];
uniqueValueCount++;
}
}
return uniqueValueCount;
}
export default uniqueCountSorted;