//给定一个整数数组[2,1,2,101,4,55,3,250,4,1,2,2,7,98,123,99,...]
我试图编写一个函数(具有线性运行时复杂性)来打印下面的表格输出'xxx'类似于直方图(输出应与下面的样本输出紧密匹配,包括" 99 +"捕获所有数字的计数> 99):
Num | count
1 | xx
2 | xxxx
3 | x
4 | xx
98 | X 99 | X 99+ | XXX
答案 0 :(得分:0)
您可能希望尝试使用forEach()方法迭代数组。然后创建一个" x"的数组,只要数组中的当前项。然后使用join方法将数组连接成一串x' s。
我还没有包括如何处理超过99的数字,但我认为你应该足以让你开始。解决方案将涉及使用条件语句来检查数字是否大于99并相应地打印。
我从我的例子中得到了以下输出:
Num | Count
2 ' |' 'xx'
4 ' |' 'xxxx'
6 ' |' 'xxxxxx'
8 ' |' 'xxxxxxxx'
玩得开心!
var arr = [2,4,6,8]
printHistogram = (array) => {
console.log("Num", '|', "Count")
array.forEach((x, i) => { //iterate over the array (x = current item, i = index)
var arrToJoin =[] //create an empty array
for(i = 0; i < x; i++) {
arrToConcat.push('x') //add an "x" to the array
}
console.log(i, ' |', arrToConcat.join(''))
})
}
printHistogram(arr)
答案 1 :(得分:0)
CREATE TABLE temporary (id int, name varchar(100), dob date, gender char(1), PRIMARY KEY (id));
LOAD DATA INFILE '/path/pqr.csv'
INTO TABLE temporary
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
ALTER TABLE abc ADD COLUMN (gender varchar(1));
UPDATE abc
SET gender = (SELECT gender FROM temporary WHERE temporary.id = abc.id);
-- some DBs need a FROM clause, use either one which works
UPDATE abc
SET gender = (SELECT gender FROM temporary WHERE temporary.id = abc.id)
FROM temporary;
SELECT * FROM abc;
DROP TABLE temporary;
&#13;
答案 2 :(得分:0)
这个怎么样?
创建一个名为arrToCompare
的所有唯一数字的数组然后迭代该数组并将每个数字与原始数组中的每个数字进行比较。如果它们相等则将x推送到数组以加入。加入它并使用适当的符号进行记录。
var arr = [7, 7, 8, 9, 2,4,6,8,2]
printHistogram = (array) => {
var arrToCompare =[]
console.log("Num", '|', "Count")
array.forEach((x, i) => {
arrToCompare.includes(x) ? "" : arrToCompare.push(x)
})
arrToCompare.forEach(function(x) {
var arrToJoin = []
array.forEach(function(i) {
if(i === x) {
arrToJoin.push('x')
}
})
console.log(x, '|', arrToJoin.join(''))
})
}
printHistogram(arr)