비행기의 좌석 수를 나타내는 정수 n이 있다고 가정합니다. 이제 첫 번째 승객이 표를 잃어버려서 임의의 좌석을 고른다고 가정해 보겠습니다. 이제 다른 사람들은 모두 자신의 티켓을 가지고 있지만 이미 자리가 찼다면 그들도 무작위로 빈 자리를 선택합니다. 마지막 사람이 배정된 자리를 차지할 확률을 찾아야 합니다. 따라서 입력이 n =5와 같으면 출력은 0.5가 되고 두 명 이상의 사람이 있을 때 답은 항상 일정합니다. 왜냐하면 그들이 올바른 자리를 가졌든 아니든, 그래서 확률은 항상 50%이기 때문입니다. n =1의 경우 100%가
각 단어의 길이가 같은 단어라는 소문자 문자열 목록이 있다고 가정합니다. 한 문자만 다른 두 개의 문자열이 있는지 확인해야 합니다. 따라서 입력이 단어 =[seed, pick, lick, root, live]와 같으면 pick 및 lick이 거의 같기 때문에 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − s :=새로운 세트 단어의 각 단어에 대해 수행 단어의 각 색인 i와 단어 w에 대해 do 단어[인덱스 0에서 i - 1까지]의 하위 문자열이 s에 있는 경우 * 연결 단어[인덱스 i + 1에
s라는 소문자 알파벳 문자열이 있고 pairs라는 쌍 목록도 있다고 가정합니다. 쌍의 각 요소에는 문자 a와 b가 동일한 것으로 간주되는 두 개의 문자열 [a, b]가 있습니다. [a, b] 및 [b, c]와 같은 두 쌍이 있는 경우 및 b는 또한 b와 c가 동일하므로 및 c도 동일하다고 말할 수 있습니다. 그리고 어떤 값이나 b는 그 자신과 동등합니다. 주어진 등가 관계로 s가 회문인지 아닌지 확인해야 합니다. 따라서 입력이 s =raceckt 쌍 =[[r, t], [a, k], [z, x]]인 경우 출력은 beTrue, a =
고객 목록과 또 다른 목록 분위기가 있다고 가정하고 이 둘은 길이가 같고 또 다른 정수 k가 있습니다. 이제 매분 i에서 고객[i]의 수는 매장을 방문하고 기분[i] =1이면 고객이 행복하다는 것을 나타내고 기분[i] =0이면 슬퍼합니다. k 크기의 무드 하위 목록을 1로 설정할 수 있으며, 마지막으로 우리가 행복하게 만들 수 있는 최대 사람 수를 찾아야 합니다. 따라서 입력이 고객 =[2, 3, 6, 6, 3] 분위기 =[1, 1, 0, 0, 0] k =2인 경우 출력은 17이 됩니다. 왜냐하면 우리가 분위기[2를 설정하면 ]
num이라는 숫자 목록이 있고 쿼리 목록도 있다고 가정합니다. 여기서 각 쿼리 요소에는 [i, j]가 포함됩니다. 따라서 이 쿼리는 [i, j](둘 다 포함)의 하위 목록이 산술 시퀀스인지 여부를 묻습니다. 따라서 마지막으로 true를 반환하는 쿼리 수를 찾아야 합니다. 따라서 입력이 nums =[2, 4, 6, 8, 7, 6, 5, 2] 쿼리 =[[3, 4],[0, 3],[2, 4]]인 경우 출력은 2가 됩니다. [2, 4, 6, 8]은 산술 시퀀스이므로 쿼리 [0, 3]이 참입니다. [8, 7]의 경우도 산술 시퀀스이므로 쿼리
북쪽, 남쪽, 서쪽 및 동쪽에 대해 각각 N, S, W 및 E의 네 방향을 가진 문자열이 있다고 가정합니다. 네 방향이 각각 n/4번 발생하도록 업데이트할 수 있는 가장 짧은 부분 문자열의 크기를 찾아야 합니다. 여기서 n은 문자열 s의 크기입니다. 따라서 입력이 s =NNSWWESN과 같으면 출력은 1이 되고 여기서 n은 8이므로 8/4는 2이므로 마지막 N을 E로 변경하면 모든 방향이 두 번 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=s의 크기 n이 0이면 0을 반환 1/4 :=(n / 4)
0과 1만 포함하는 nums라는 이진 목록이 있다고 가정합니다. 여기서 0은 빈 셀을 나타내고 1은 셀이 공으로 채워져 있음을 나타냅니다. L[i]는 모든 공을 L[i]로 이동하는 데 필요한 총 거리로 설정되어 있으며 크기도 nums 크기와 동일한 L을 말하는 새 목록을 찾아야 합니다. 여기서 인덱스 j에서 인덱스 i까지 공을 이동하는 거리는 |j - i|입니다. 따라서 입력이 nums =[1, 1, 0, 1]과 같으면 출력은 [4, 3, 4, 5]가 됩니다. 왜냐하면 L[0] =|0 - 0| + |1 - 0| + |3 - 0|
0 또는 1이 있는 이진 목록이 있다고 가정합니다. 또한 k라는 또 다른 입력이 있습니다. 합이 k와 같은 하위 목록의 수를 찾아야 합니다. 따라서 입력이 nums =[1, 0, 0, 1, 1, 1, 0, 1] k =3과 같으면 하위 목록이 [1,0,0,1,1이기 때문에 출력은 8이 됩니다. ], [0,0,1,1,1], [0,0,1,1,1,0], [0,1,1,1], [0,1,1,1,0], [1,1,1], [1,1,1,0] [1,1,0,1]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − sums :=지도는 처음에 키 0에
두 개의 값 시작과 끝이 있다고 가정하고 [시작, 끝] 범위(둘 다 포함)에 있는 모든 숫자의 비트 AND를 찾아야 합니다. 따라서 입력이 start =8 end =12와 같으면 출력은 8이 2진수로 1000이고 12가 2진수로 1100이므로 1000 AND 1001 AND 1010 AND 1011 AND 1100은 1000, 즉 8이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=끝 - 시작 + 1 x :=0 31~0 범위의 b에 대해 1 감소, do 2^b
로봇의 움직임을 나타내는 문자열 s가 있다고 가정합니다. 로봇은 현재 (0, 0) 위치에 있으며 북쪽을 향하고 있습니다. 이동 문자열 s에는 다음 문자가 포함될 수 있습니다. 한 단위 앞으로 이동하려면 F를 누르세요. 왼쪽으로 90도 회전하는 L 오른쪽으로 90도 회전하는 R 따라서 로봇이 순서대로 이동을 반복하면 비행기에 로봇이 절대 떠나지 않는 상자가 있는지 확인해야 합니다. 따라서 입력이 s =FFFRFRFFRF와 같으면 로봇이 북쪽으로 2단위 이동하기 때문에 출력은 True가 됩니다. 그런 다음 오른쪽으로 90도 회전
두 개의 숫자 nums1과 nums2 목록이 있다고 가정합니다. 또한 상하 두 개의 숫자가 있습니다. lower ≤ nums1[i]^2 + nums2[j]^2 ≤ upper가 되는 쌍(i, j)의 수를 찾아야 합니다. 따라서 입력이 nums1 =[5, 3, 2] nums2 =[8, 12, 6] lower =10 upper =50과 같으면 쌍이 (1, 2) 및 ( 2, 2) 10 <=3^2 + 6^2 <<50 =10 <=45 <<50 10 <=2^2 + 6^2 <<50 =10 <=40 <<50 이 문제를 해결하기 위해 다음 단
벽돌이라고 하는 숫자 목록과 너비와 높이의 다른 두 값 목록이 있다고 가정합니다. 벽돌[i]의 각 요소는 길이가 벽돌[i] 단위이고 너비가 1단위인 벽돌을 나타냅니다. 주어진 너비와 높이로 벽돌의 전체 레이아웃을 얻을 수 있도록 벽돌을 쌓는 방법의 수를 찾아야 합니다. 벽돌을 재사용할 수 있지만 수평으로만 놓을 수 있습니다. 따라서 입력이 벽돌 =[2, 1] 너비 =3 높이 =2와 같으면 출력은 −이기 때문에 9가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − w :=너비와 같은 크기의 목록으로 첫 번째 위치
소문자 문자열 s와 길이가 s의 길이와 동일한 shift라고 하는 또 다른 정수 목록이 있다고 가정합니다. 여기에서 shifts[i]의 각 요소는 shifts[i] 위치만큼 s의 첫 번째 i + 1 문자를 이동한다는 것을 나타냅니다. 이동이 z를 가로지르면 a로 마무리됩니다. s에 shift를 적용한 후 결과 문자열을 찾아야 합니다. 따라서 입력이 s =tomato shifts =[2, 5, 2, 3, 7, 4]와 같으면 출력은 qjcoes이므로 첫 번째 문자를 2자리 이동한 후 t 에서 v로 변환하므로 문자열은 vomato입니다
X, ( 및 ) 세 문자로만 구성된 문자열이 있다고 가정합니다. 문자열에는 균형 잡힌 대괄호가 있으며 일부 X 사이에는 중첩된 대괄호가 재귀적으로 있을 수 있습니다. 가장 얕은 깊이부터 가장 깊은 깊이까지 s의 각 괄호 깊이에서 X의 수를 찾아야 합니다. 따라서 입력이 s =(XXX(X(XX))XX)와 같으면 출력은 [5, 1, 2]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 깊이:=-1 out :=새 목록 s의 각 c에 대해 c가 (와 같으면 깊이 :=깊이 + 1 그렇지 않으면 c가 )와 같을
num이라는 순환 목록이 있다고 가정합니다. 따라서 첫 번째 요소와 마지막 요소는 이웃입니다. 따라서 임의의 인덱스에서 시작하여 nums[i]가 양수 값이면 nums[i] 단계만큼 앞으로 이동할 수 있고, 그렇지 않으면 음수 값이면 뒤로 이동할 수 있습니다. 길이가 1보다 큰 사이클이 있는지 확인하여 경로가 앞으로만 이동하거나 뒤로만 이동하는지 확인해야 합니다. 1] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=숫자 크기 n이 0과 같으면 거짓을 반환 seen :=크기가 n이고 0으로 채워진 배열 nums의
코어와 작업이라는 두 개의 목록이 있다고 가정합니다. cores[i]는 i번째 서버에서 사용 가능한 코어 수를 나타냅니다. 그리고 task[i]는 해당 작업을 실행하는 데 필요한 코어 수를 나타냅니다. 각 작업은 하나의 서버에서만 실행되어야 합니다. 그리고 서버에는 실행할 여러 작업이 있을 수 있습니다. 주어진 코어로 모든 작업을 실행할 수 있는지 여부를 확인해야 합니다. 따라서 입력이 cores =[10, 7] tasks =[7, 3, 2, 2, 1]과 같으면 출력은 True가 됩니다. 왜냐하면 task[0]과 tasks[1]을
각 셀 행렬[r, c]이 해당 셀에 있는 동전의 수를 나타내는 2D 행렬이 있다고 가정합니다. 행렬[r, c]에서 동전을 집어들면 행 (r - 1)과 (r + 1)의 모든 동전과 두 셀 행렬[r, c + 1]에 있는 동전이 사라집니다. 행렬[r, c - 1]. 모을 수 있는 최대 코인 수를 찾아야 합니다. 따라서 입력이 다음과 같으면 2 8 7 6 10 10 4 2 5 9 2 3 그러면 동전 8, 6, 9와 3이 있는 셀을 선택할 수 있으므로 출력은 26이므로 총합은 26이 됩니다. 이 문제를 해결하기 위해 다음 단계
방향 그래프의 에지 목록이 있고 n개의 노드가 있고 노드 이름이 0에서 n-1이라고 가정합니다. 또한 두 개의 정수 값 a와 b가 있습니다. c에서 b로 갈 수 있는 노드 c가 있는지 확인해야 합니다. 따라서 입력이 다음과 같으면 그리고 a =2, b =3이면 출력은 True가 됩니다. 여기서 c =0이므로 0에서 2로, 0에서 3으로의 경로도 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − DFS() 함수를 정의합니다. 그래프, 노드, 방문 횟수가 필요합니다. 노드를 방문하지 않으면 노드를 방문한 것으로
두 개의 목록 nums1과 nums2가 있다고 가정합니다. 이 두 목록은 각각 실행 길이로 인코딩된 형식으로 벡터를 나타냅니다. 예를 들어 벡터 [1, 1, 1, 2, 2, 2, 2]는 [3, 1, 4, 2]로 표시됩니다. (3개의 1과 4개의 2가 있기 때문에). 따라서 우리는 이 두 벡터의 내적을 찾아야 합니다. (내적은 두 벡터에 있는 항목의 요소별 곱셈의 합입니다.) 따라서 입력이 nums1 =[2, 7, 5, 3] nums2 =[3, 5, 4, 2]와 같으면 출력은 109가 됩니다. 벡터는 [7, 7, 3, 3 , 3,
0과 1을 포함하는 이진 문자열 input_str이 주어졌다고 가정합니다. 우리의 임무는 주어진 문자열에서 1을 교환하여 0과 1을 그룹화하는 것입니다. 최소한의 스왑 작업을 수행해야 하며 해당 값을 반환해야 합니다. 한 가지 명심해야 할 점은 인접한 값만 바꿀 수 있다는 것입니다. 따라서 입력이 input_str =10110101과 같으면 출력은 4가 됩니다. 스왑은 다음과 같습니다 - 10110101->01110101->01111001->01111010->01111100 총 스왑 수:4. 이 문제를