정수 n이 있다고 가정하고 분모 <=n이 되도록 0과 1(배타적) 사이의 모든 단순화된 분수 목록을 찾아야 합니다. 여기서 분수는 임의의 순서가 될 수 있습니다. 따라서 입력이 n =4와 같으면 출력은 [1/2,1/3,1/4,2/3,3/4]가 2가 됩니다. /4는 1/2로 단순화될 수 있으므로 단순화된 분수가 아닙니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ret 배열 정의 i:=2 초기화의 경우, i <=n일 때 업데이트(i를 1만큼 증가), − j 초기화의 경우:=1, j
이진 트리가 있다고 가정하고 루트에서 X까지의 경로에 값이 X보다 큰 노드가 없을 때 트리의 노드 X는 good으로 명명됩니다. 여기서 우리는 이진 트리에서 양호한 노드의 수를 찾아야 합니다. 따라서 입력이 다음과 같으면 그러면 출력은 4가 되고 색상이 지정된 노드는 좋은 노드입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − dfs() 함수를 정의하면 node, val, 노드가 null이면 - 반환 ret :=ret + (val <=노드의 val일 때 1, 그렇지 않으면 0)
다른 단어가 포함된 문자열이 있고 그 문자열을 문장이라고 하며 다음 형식으로 되어 있다고 가정합니다. - 첫 글자는 대문자입니다. 텍스트의 각 단어는 단일 공백 문자로 구분됩니다. 모든 단어가 길이가 오름차순으로 재배열되도록 텍스트의 단어를 재배열해야 합니다. 두 단어의 길이가 같으면 원래 순서대로 정렬합니다. 그런 다음 이 규칙을 적용하여 마지막으로 문자열을 반환합니다. 따라서 입력이 I love to code in cpp와 같으면 출력은 I to in cpp love code가 됩니다. 이 문제를 해결하
FavoriteCompanies[i]가 i번째 사람의 즐겨찾기 회사 목록인 즐겨찾기 회사라는 배열이 있다고 가정합니다. 선호하는 회사 목록이 다른 선호하는 회사 목록의 하위 집합이 아닌 사람들의 인덱스를 찾아야 합니다. 따라서 입력이 FavoriteCompanies =[[TCS, google, facebook], [google,microsoft], [google, facebook], [google], [amazon]], 출력은 [0,1,4]가 됩니다. 이는 index=2인 사람이 [google, facebook]이(가) Favor
문자열 s와 정수 k가 있다고 가정합니다. 길이가 k인 s의 부분 문자열에서 최대 모음 문자 수를 찾아야 합니다. 따라서 입력이 s =abciiidef, k =3과 같으면 출력은 3이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − cnt :=0 한 세트 m 정의 각 모음 v에 대해 수행 v를 m에 삽입 ret :=0 initialize i :=0의 경우, i
노드 값이 1에서 9 사이의 숫자인 이진 트리가 있다고 가정합니다. 이진 트리의 한 경로는 경로에 있는 노드 값의 하나 이상의 순열이 회문일 때 의사 회문이라고 합니다. 루트 노드에서 리프 노드로 가는 의사 회문 경로의 수를 찾아야 합니다. 따라서 입력이 다음과 같으면 루트 노드에서 리프 노드로 가는 세 개의 경로가 있기 때문에 출력은 2가 됩니다. 빨간색 경로는 [2,3,3]을 따르고 녹색 경로는 [2,1,1]을 따르고 경로는 [ 2,3,1]. 빨간색 경로 [2,3,3]을 [3,2,3]으로 재배열할 수 있고 녹색 경로 [2
이진 문자열 s와 정수 k가 있다고 가정합니다. 길이가 k인 모든 이진 코드가 s의 부분 문자열인지 확인해야 합니다. 그렇지 않으면 False를 반환합니다. 따라서 입력이 S =00110110, k =2와 같으면 출력은 true가 됩니다. 길이가 2인 바이너리 코드는 00, 01, 10 및 11입니다. 이들은 각각 인덱스 0, 1, 3, 2에 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 한 세트 v 정의 temp :=빈 문자열 필요 :=2^k initialize i :=0의 경우 i
우리가 수강할 수 있는 총 n개의 코스가 있다고 가정하고 코스는 0에서 n-1까지 레이블이 지정됩니다. 일부 과정에는 직접적인 전제 조건이 있을 수 있습니다. 예를 들어 과정 0을 수강하려면 먼저 과정 1을 수강해야 하며, 이는 [1,0] 쌍으로 표시됩니다. 따라서 코스가 n개 있는 경우 직접 선행 조건 쌍 목록과 쿼리 쌍 목록이 있습니다. 코스 쿼리[i][0]가 코스 쿼리[i][1]의 전제 조건인지 여부에 관계없이 각 쿼리[i]에 대한 답을 찾아야 합니다. 마지막으로 주어진 쿼리에 대한 답변인 부울 목록을 반환해야 합니다.
높이가 h이고 너비가 w인 직사각형 케이크가 있다고 가정하고, HorizontalCuts[i]가 직사각형 케이크의 상단에서 i번째 수평 절단까지의 거리를 나타내는 두 개의 정수 horizontalCuts 및 verticalCuts가 있다고 가정하고, 유사하게 verticalCuts[j] 직사각형 케이크의 왼쪽에서 j번째 수직 절단까지의 거리를 나타냅니다. HorizontalCuts 및 verticalCuts 배열에 제공된 각 수평 및 수직 위치에서 케이크 조각을 자른 후 최대 면적을 찾아야 합니다. 답이 클 수 있으므로 이 모듈로
0에서 n-1까지 번호가 매겨진 n개의 다른 도시가 있고 n-1개의 도로가 있어 두 개의 다른 도시 사이를 여행하는 방법은 단 하나라고 가정합니다. 교통부가 도로가 너무 좁아서 한 방향으로 방향을 지정하기로 결정했다고 가정해 보겠습니다. 여기서 도로는 연결[i] =[a, b]인 연결로 표시됩니다. 이는 도시에서 b까지의 도로를 나타냅니다. 수도(도시 번호 0)에 큰 행사가 있고 많은 사람들이 이 도시로 여행을 가고 싶어하는 경우. 각 도시가 도시 0을 방문할 수 있도록 일부 도로에서 방향 재지정 작업을 수행해야 합니다. 변경된
arr[j]이면 arr[i]가 arr[j]보다 강하다고 합니다. 따라서 배열에서 가장 강한 k 값의 목록을 찾아야 합니다. 1이기 때문에 5는 1보다 강합니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 배열 정렬 arr n :=arr의 크기 m :=arr[(n - 1)/2] 쌍의 배열 v 정의 i :=0, j :=n - 1 ret 배열 정의 k가 0이 아닌 동안 각 반복에서 k를 감소시키고 - x1 :=|arr[j]- m| x2 :=|arr[i]- m| =x2이면 -
동등한 단어 동의어와 문장 텍스트의 쌍 목록이 있다고 가정하고 사전순으로 정렬된 가능한 모든 동의어 문장을 찾아야 합니다. 따라서 입력이 동의어 =[[happy,joy],[sad,sorrow],[joy,cheerful]] 및 text =나는 오늘 행복하지만 어제 슬펐다라고 하면 [오늘은 즐거우나 어제는 슬펐다, 오늘은 즐거우나 어제는 슬펐다, 오늘은 기쁘지만 어제는 슬펐다, 오늘은 기쁘지만 어제는 슬펐다가 출력된다. 어제는 슬펐다, 오늘은 기쁘지만 어제는 슬펐다, 오늘은 기쁘지만 어제는 슬펐다] 이 문제를 해결하기 위해 다음 단
모든 오른쪽 노드가 형제가 있는 리프 노드이거나 비어 있는 이진 트리가 있다고 가정하면 이를 거꾸로 뒤집어 원래 오른쪽 노드가 왼쪽 리프 노드로 바뀌는 트리로 바꿔야 합니다. 새 노드를 반환해야 합니다. 따라서 입력이 [1,2,3,4,5]와 같은 경우 그러면 출력은 이진 트리 [4,5,2,#,#,3,1]의 루트를 반환합니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solve() 함수를 정의하면 노드, 파, 형제,가 사용됩니다. 노드가 없으면 - NULL 반환 자식 =노드의 왼쪽
문자열 s가 있다고 가정합니다. 최대 2개의 고유한 문자를 포함하는 가장 긴 부분 문자열 t의 길이를 찾아야 합니다. 따라서 입력이 eceba와 같으면 t가 ece이고 길이가 3이므로 출력은 3이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − lengthOfLongestSubstringKDistinct() 함수를 정의하면 s, k,가 필요합니다. 답변 :=0 하나의 맵 정의 n :=s의 크기, x :=0 j :=0, i :=0 초기화의 경우, j
두 개의 문자열 s와 t가 있다고 가정합니다. 둘 다 하나의 편집 거리만큼 떨어져 있는지 확인해야 합니다. 하나의 편집 거리에는 세 가지 유형이 있습니다 - t를 얻으려면 s에 문자를 삽입하십시오. s에서 문자를 삭제하여 t t를 얻으려면 s의 문자를 바꾸십시오. 따라서 입력이 s =ab, t =acb와 같으면 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=s의 크기, m :=t의 크기 n
정렬된 정수 배열 nums가 있고 요소 범위가 포함 범위[하한, 상한]에 있다고 가정하고 누락된 범위를 찾아야 합니다. 99] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 배열 번호 정의 한 세트 v 정의 initialize i :=0의 경우 i
입력 문자열이 하나 있다고 가정하고 문자열을 단어 단위로 바꿔야 합니다. 따라서 입력이 [t,h,e, ,m,a,n, ,i,s, ,와 같은 경우 n,l,c,e]인 경우 출력은 [n,l,c,e, ,i,s, ,m,a,n, ,t,h,e] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 배열 반전 j :=0 n :=s의 크기 initialize i :=0의 경우, i
생성자에서 단어 목록을 받는 클래스가 있다고 가정하면 word1과 word2 두 단어를 사용하여 목록에서 이 두 단어 사이의 최단 거리를 찾는 메서드가 있습니다. 이 메소드는 다른 매개변수를 사용하여 여러 번 반복적으로 호출됩니다. 단어 =[연습, 만드는, 완벽한, 기술, 만드는]이라고 가정해 봅시다. 따라서 입력이 word1 =skill, word2 =practice와 같으면 출력은 3이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 하나의 맵 정의 이니셜라이저는 단어 배열을 사용합니다. for
단어 목록과 word1 및 word2라는 또 다른 두 단어가 있다고 가정하면 목록에서 이 두 단어 사이의 최단 거리를 찾아야 합니다. 여기서 word1과 word2는 같을 수 있으며 목록에서 두 개의 개별 단어를 나타냅니다. 단어 =[연습, 만드는, 완벽한, 기술, 만드는]이라고 가정해 봅시다. 따라서 입력이 word1 =makes, word2 =skill과 같으면 출력은 1이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ret :=10^9, l1 :=10^9, l2 :=-10^9 n :=단어의 크기
길이 n이 있다고 가정합니다. 길이가 n인 모든 스트로보그램 숫자를 찾아야 합니다. 스트로보그램식 숫자는 180도 회전할 때 동일하게 보이는 숫자라는 것을 알고 있습니다. 따라서 입력이 n =2와 같으면 출력은 [11,69,88,96]이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ret 배열 정의 n이 홀수이면 - ret 끝에 0 삽입 ret 끝에 1 삽입 ret 끝에 8 삽입 그렇지 않으면 ret의 끝에 빈 문자열 삽입 1에 대해 업데이트 n :=n - 2,