기초 지식 V2

4990 단어 면접

1, 2분 찾기


첫 번째는 돌아가는 2점 찾기, 두 번째는 순환하는 2점 찾기
int find(int a[], int left, int right, int num)
{
    if(left >= right) return -1;
    int mid = left + (right-left)/2;
    if(num < a[mid]) 
        right = mid-1;
    else if(num > a[mid] )
        left = mid+1;
    else if(num == a[mid])
        return mid;
    return find(a, left, right, num);
}

int find2(int a[], int left, int right, int num)
{
    while(left <= right) 
    {
        int mid = left+(right-left)/2;
        if( num < a[mid] )
            right = mid-1;
        else if(num > a[mid])   left = mid+1;
        else if(num == a[mid])  return  mid;
    }
    return -1;
}

그중int mid = left + (right -left)/2은 면접관들이 자주 보는 지식이다.left+right의 값이 충분하면 넘칠 수 있으므로 위의 쓰기를 사용하는 것이 좋습니다.

2. 어떻게 C의 구조로 클래스를 실현합니까?


C 언어에는 클래스가 없고 구조는 데이터만 봉인되어 있고 알고리즘이 없다.그러면 어떻게 C 언어의 클래스를 통해 C++의 클래스를 실현합니까?클래스에서 구성원의 기본 첫 번째 인자는 T*constthis입니다.예:
class A { void play( int);};

함수 원형은 다음과 같습니다.
void play( A* const , int);

그리고 함수 재부팅을 통해 이루어집니다.

3. 프로세스 간에 어떻게 통신합니까?


프로세스 간 통신(IPC,interprocess communication)은 서로 다른 프로세스 간에 정보를 전파하거나 교환하는 것이다.프로세스 간 통신 메커니즘은 크게 다음과 같은 몇 가지를 포함한다.
  • 파이프(pipe)
  • 유명 파이프(named pipe)
  • 신호량(semophore)
  • 메시지 대기열(messagequeue)
  • 신호(sinal)
  • 공유 메모리(shared memory)
  • 소켓
  • 4. 번역 과정


    일반적으로 컴파일러의 작업 과정을 다섯 단계로 나눈다.어법 분석 2.문법 분석 3.의미 분석과 중간 코드 생성 4.최적화대상 코드 생성

    5. 정정수가 대칭수인지 아닌지를 판단한다.


    예를 들면 323, 12321등.정수를 문자열로 바꾸어 판단할 수 없습니다.아주 간단한 면접 문제, 하나의 사고방식은 이 정수를 거울로 반전시킨 다음에 원래의 값과 비교하여 똑같은지 확인하는 것이다.코드는 다음과 같습니다.
    bool isMirror(int num)
    {
        int mirror = 0, temp = num;
        while(num != 0)
        {
            mirror = mirror*10 + num%10;
            num /= 10;
        }
        return (mirror == temp);
    }
    

    6. 회전수 그룹의 최소값을 구한다


    이것은 검지offer에서 이루어진 것이다. 그 중의 한 가지 사고방식은 상황을 나누어 토론하는 것이다. 비교적 쉽다. 여기는 표시로 하고 건너뛴다.

    좋은 웹페이지 즐겨찾기