第二章
2.4 2.4.1 《 找出证书数组中子数组之和的最大值》
目前这个还有BUG。 从最早题目都没看懂,到现在这个样子。 没想到自己能做成这样,换做以前的话,早就不管了
[1,-2,3,5,-1]
应该返回8,符合要求的子数组为 [3,5]
function findArrayMax() {
var array = [2, -4, 3, 6, -5, 4];//目前有BUG,结果会是[3,6,4]
// 子数组起始索引
var sonArrayStartIndex = 0;
//当前正数get,然后+后面的数>0的也get
var arrayLength = array.length;
var result='';
var resultSum = 0;
var resultIndex = '';
var arrayMaxValue = null;
for(var i in array){
var tempCurEle = array[i];
var nextNum;
//得到数组最大值
if(arrayMaxValue !== null){
if(arrayMaxValue < tempCurEle){
arrayMaxValue = tempCurEle;
}
}else{
arrayMaxValue = tempCurEle;
}
// 得到下一个元素
if(parseInt(i) !== arrayLength - 1){
nextNum = array[parseInt(i)+1];
}else{
nextNum = null;
}
// if( tempCurEle > 0){
if( true){
if(nextNum !== null ){
var tempSum = tempCurEle + nextNum;
if(tempSum > 0 ){
if(parseInt(i) === arrayLength - 1 && nextNum < 0 ){
continue;
}else{
resultIndex += i + ',' ;
if(result === ''){
result += array[i];
resultSum += array[i];
}else{
result += ',' + array[i];
resultSum += array[i];
}
}
}
}else{
if(tempCurEle > 0){
resultIndex += i;
if(result === ''){
result += array[i];
resultSum += array[i];
}else{
result += ',' + array[i];
resultSum += array[i];
}
}
}
}
}
if(resultSum < arrayMaxValue){
console.log('最大值之和的子数组为: [' + arrayMaxValue + ']');
console.log('最大值之和为: ' + arrayMaxValue + '');
}else{
console.log('最大值之和的子数组为: [' + result + ']');
console.log('最大值之和为: ' + resultSum);
}
}
findArrayMax();
颠倒英文句子
var reversePhrase = function ( phrase){
var phraseArray = null;
var resultPhrase = '';
//解析字符串为数组
phraseArray = phrase.split(' ');
// console.log(phraseArray.toString());
//倒叙
for(var i = phraseArray.length - 1; i >= 0; i--){
resultPhrase += phraseArray[i] + ' ';
}
return resultPhrase;
};
console.log(reversePhrase('How are you'));