>  기사  >  백엔드 개발  >  C++는 2차원 배열로 검색을 구현합니다.

C++는 2차원 배열로 검색을 구현합니다.

little bottle
little bottle원래의
2019-04-09 11:14:573269검색

오늘 편집자가 인터넷에서 2차원 배열 검색에 관한 작은 질문을 봤습니다. 관심이 있으시면 첨부된 코드를 잘 살펴보세요. 흉내내서 쓰시면 됩니다!

C++는 2차원 배열로 검색을 구현합니다.

Question:

2차원 배열에서 각 행은 다음과 같습니다. : 왼쪽에서 오른쪽으로 오름차순으로 정렬되며, 각 열은 위에서 아래로 오름차순으로 정렬됩니다. 함수를 완성하고, 이러한 2차원 배열과 정수를 입력하고, 배열에 정수가 포함되어 있는지 확인하세요.

1. 아이디어

먼저 배열의 오른쪽 상단에 있는 숫자를 선택하세요. 숫자가 찾고 있는 숫자와 같으면 검색 프로세스가 종료됩니다. 숫자가 찾고 있는 배열보다 크면 숫자가 현재 숫자보다 작으면 해당 열을 제거합니다. 찾으면서 해당 숫자가 있는 행을 제거하세요. 즉, 찾으려는 숫자가 배열의 오른쪽 상단에 없으면 매번 배열의 검색 범위에서 하나의 행이나 열이 제거되므로 각 단계에서 검색 범위가 좁아질 수 있습니다. 찾을 번호를 찾거나 검색 범위가 null이 될 때까지.

2. 예시

2차원 배열에서 숫자 7이 발견되면 true를 반환합니다. , false를 반환합니다.

1 2 8 9

2 4 9 12

#🎜🎜 # 4 7 10 13

6 8 11 15#🎜 🎜#

검색과정은 다음과 같습니다.

C++는 2차원 배열로 검색을 구현합니다.

3. 프로그래밍 구현

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int rows = array.size();
        int cols = array[0].size();
        if(!array.empty() && rows > 0 && cols > 0){
            int row = 0;
            int col = cols - 1;
            while(row < rows && col >= 0){
                if(array[row][col] == target){
                    return true;
                }
                else if(array[row][col] > target){
                    --col;
                }
                else{
                    ++row;
                }
            }
        }
        return false;
    }
};

[추천 과정: C++ 동영상 튜토리얼]

위 내용은 C++는 2차원 배열로 검색을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.