2013-10-04 1 views
-4

이것은 야후의 질문입니다. 두 개의 배열 A와 B에서 세 개의 숫자를 찾습니다. 입력 : 정렬되지 않은 배열 A 및 B 출력 : M에 합계하는 세 개의 숫자 세트. 요구 사항을 충족시키는 많은 종류의 결과가 있습니다.주어진 숫자와 동일한 두 개의 배열에서 3 개의 숫자 찾기 M

요청 : A에서 한 번호, B에서 다른 두 개; 또는 B로부터의 하나의 수, A로부터의 다른 두 수이다. 공간 복잡성 O (1)은 시간 복잡성을 줄이기 위해 노력한다.

중복 튜플을 구현하고 피하는 방법은 무엇입니까? 이 질문은 from here과 같은 질문을 좋아합니다. 그러나 해결할 수있는 쉬운 방법이 있습니까? 두 배열에서 중복 된 결과를 피하는 방법을 알고 싶습니까? 배열을 정렬하지 않으면 동일한 요구 사항으로 알고리즘을 구현할 수 있습니까?

+1

연구의 일부 요소를 보여줘야합니다. 너 뭐 해봤 니? 시간과 공간의 복잡성 목표가 있습니까? http://stackoverflow.com/questions/5630363/find-two-elements-in-an-array-that-sum-to-k – Traklon

+0

3 개의 숫자가 모두 'M'과 같은지 여부는 명확하지 않습니다. '또는 M의 합계 인 3 개의 숫자. – Henrik

+0

불명확하게 질문하는 것에 대해 사과드립니다. 배열 A와 B는 정렬되지 않습니다. 공간 복잡성 O (1)은 시간 복잡성을 줄이기 위해 노력합니다. 중복 튜플을 구현하고 피하는 방법은 무엇입니까? – user2780417

답변

0

쉬운 방법은 ...있는 선택한 하나가 아닌 선택하는 고유의 목록을 얻을 수

http://jsfiddle.net/jsxzA/

HTML :

Array A:<div id="select_container"> 
<select id="select_box"></select> 
</div> 

Array B:<div id="array_B"></div> 

Values from B which are not equal to what you selected: <div id="uniques"></div> 

자바 스크립트 :

var arrA = [1, 2, 3, 4]; 
var arrB = [1, 5, 6, 7]; 
var BArrLength = arrB.length; 
var i; 
var selectedFromA; 
var uniqueArrB = []; 
var selectContainer = $('#select_container'); 
var htmlString = ''; 

$.each(arrA, function(index, value){ 
    htmlString += '<option value="'+value+'">'+value+'</option>'; 
}); 

$('#select_box').append('<option></option>'+htmlString); 

$.each(arrB, function(index, value){ 
$('#array_B').append(value); 
}); 

$('#select_box').html(htmlString); 

$('#select_container').on('change', 'select', function(){ 
    selectedFromA = $('#select_box option:selected').val(); 
    $('#uniques').html(""); 
    for(i = 0; i < BArrLength; i += 1){ 
     if(arrB[i] != selectedFromA){ 
      $('#uniques').append(''+arrB[i]); 
     } 
    }  
}); 
관련 문제