Показать сообщение отдельно
  #2 (permalink)  
Старый 18.05.2011, 20:03
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

var arr1 = [ 2, 3, 5, 7, 7, 7, 8, 10 ]; // для sorted()
var arr2 = [ 14, 17, 12, 57, 27, 19, 97 ]; // для endsWith()
var arr3 = [ -2, 7, 3, -1, 1, 2, 3, -5 ]; // для consecPositive()

/*
   Если массив отсортирован по возрастанию,
   возвращается 1, по убыванию — -1, если
   вообще не отсортирован, то 0.
*/

function sorted(A) {
	var T = A[0] < A[1], N = false;
	for (var i = 1; i < A.length - 1; i++) {
		if ( T ? A[i] > A[i+1] : A[i] < A[i+1] ) {
			N = true;
			break;
		}
	}
	return N ? 0 : T ? 1 : -1;
}

function endsWith(A, j) {
	var k = 0;
	for (var i = 0; i < A.length; i++)
		if (A[i] % 10 === j)
			++k;
	return k;
}

function consecPositive(A) {
	var max = 0, j = 0, F = false;
	for (var i = 0; i < A.length; i++) {
		if (!F && A[i] > 0) F = true, j = i;
		if (F && A[i] < 0) {
			if (i - j > max) max = i - j;
			j = 0; F = false;
		}
	}
	return max;
}

alert( sorted(arr1) );
alert( endsWith(arr2, 7) );
alert( consecPositive(arr3) );
Ответить с цитированием