광고판을 설치하고 가장 높은 높이를 원한다고 가정합니다. 빌보드는 양쪽에 두 개의 강철 지지대를 가질 것입니다. 각 지지대는 높이가 같아야 합니다. 우리는 또한 함께 용접할 수 있는 막대 모음을 가지고 있습니다. 따라서 길이가 1, 2, 3인 막대가 있으면 함께 용접하여 길이 6의 지지대를 만들 수 있습니다. 광고판 설치에서 가능한 가장 큰 높이를 찾아야 합니다. 빌보드를 지원할 수 없으면 0을 반환하십시오. 따라서 입력이 [1,2,2,3,3,3,4]와 같으면 출력은 [1,2,2,4] 및 [3,3]과 같은 하위 집합이 있으므로 9
N개의 문자열로 구성된 배열 A가 있다고 가정합니다. 각 문자열은 소문자로 구성되며 모두 길이가 동일합니다. 이제 삭제 색인 세트를 선택할 수 있으며 각 문자열에 대해 해당 색인의 모든 문자를 삭제할 것입니다. 이제 삭제 후 최종 배열에 사전식의 모든 요소가 있도록 삭제 색인 D 세트를 취했다고 가정합니다. 시퀀스. 명확성을 위해 A[0]은 사전순입니다(그래서 A[0][0] <=A[0][1] <=... <=A[0][n - 1]), A[1 ]는 사전순입니다(즉, A[1][0] <=A[1][1] <=... <=A[1][n - 1]).
양의 정수 x가 있다고 가정하고 x (op1) x (op2) x (op3) x ... 형식의 표현식을 작성합니다. 여기서 op1, op2 등은 연산자입니다. 그리고 이러한 연산자는 더하기, 빼기, 곱하기 또는 나누기가 될 수 있습니다. 예를 들어 x =3일 때 3 * 3 / 3 + 3 - 3이라고 쓸 수 있습니다. 값은 3입니다. 몇 가지 규칙이 있으며 다음과 같습니다. - 나누기 연산자(/)는 유리수를 반환합니다. 어디에도 괄호가 없습니다. 우리는 일반적인 연산 순서를 사용합니다. 곱셈과 나눗셈은 덧셈과 뺄셈보다
두 개의 문자열이 있다고 가정합니다. 이들은 각각 양의 유리수를 나타내는 S와 T입니다. 동일한 숫자를 나타내는지 아니면 지금 나타내는지 확인해야 합니다. 문자열은 유리수의 반복 부분을 나타내기 위해 괄호를 사용할 수 있습니다. 유리수는 정수 부분, 반복되지 않는 부분, 반복되는 부분의 세 부분으로 표현될 수 있다는 것을 알고 있습니다. 숫자는 다음 세 가지 방법 중 하나로 표시됩니다. - 정수 부분만(예:0, 12, 123) IntegerPart.NonRepeatingPart (예:0.5, 1.0, 2.12, 2.00
정수 A의 배열이 있다고 가정합니다. 다음과 같은 인덱스(i, j, k)의 트리플 수를 찾아야 합니다. - 0 <=i
양의 정수 배열 A가 있다고 가정하고 해당 하위 배열의 다른 정수 수가 정확히 K인 경우 A의 좋은 하위 배열(연속)을 호출할 수 있습니다. 따라서 배열이 [1,2,3,1 ,2]에는 1, 2, 3의 3가지 정수가 있습니다. 우리는 A의 좋은 부분배열의 수를 찾아야 합니다. 따라서 입력이 [1,2,3,1,4]이고 K =3인 경우 출력은 4가 됩니다. 정확히 4개의 고유한 정수로 3개의 하위 배열을 형성할 수 있기 때문입니다. 이들은 [1,2,3 ], [1,2,3,1], [2,3,1], [3,1,4]. 이 문제를 해결하기 위해 다음
배열 A가 있다고 가정합니다. 이것은 0과 1만 포함합니다. 여기서 K 비트 반전은 길이가 K인 (인접한) 하위 배열을 선택하고 동시에 하위 배열 n개의 비트를 반전시키는 것으로 구성됩니다. 배열에 0이 없도록 필요한 최소 K비트 플립 수를 찾아야 합니다. 그런 가능성이 없으면 -1을 반환합니다. 따라서 입력이 [0,0,0,1,0,1,1,0]이고 K =3과 같으면 첫 번째 시도에서 작업을 세 번 수행해야 하므로 출력은 3이 됩니다. A[0]을 A[3]으로 뒤집으면 배열은 [1,1,1,1,0,1,1,0]이 되고 두 번째 실행에서는
양의 정수로 구성된 배열 A가 있다고 가정하고 인접한 요소의 모든 쌍에 대해 합이 완전 제곱이면 배열은 제곱이라고 말할 수 있습니다. 제곱인 A의 순열 수를 찾아야 합니다. 두 순열 A1과 A2는 A1[i]가 A2[i]와 같지 않은 인덱스 i가 있는 경우에만 동일하지 않습니다. 따라서 입력이 [3,30,6]과 같으면 [3,6,30], [30,6,3]과 같은 두 개의 순열이 있으므로 출력은 2가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − isSqr() 함수를 정의하면 n이 필요합니다. x :=n의 제곱
N개의 돌 더미가 일렬로 배열되어 있다고 가정합니다. 여기서 i번째 더미에는 돌[i]개의 돌이 있습니다. 이동은 K개의 연속된 더미를 하나의 더미로 병합하는 것으로 구성되며, 이제 이 이동의 비용은 이 K개의 더미에 있는 돌의 총 수와 같습니다. 우리는 모든 돌 더미를 하나의 더미로 병합하는 최소 비용을 찾아야 합니다. 그런 솔루션이 없으면 -1을 반환합니다. 따라서 입력이 [3,2,4,1]이고 K =2이면 출력은 20이 됩니다. 이는 [3, 2, 4, 1]로 시작하기 때문입니다. 그런 다음 비용 5로 [3, 2]를 병합하고 [5
양의 정수 N이 있다고 가정하고 반복되는 숫자가 1개 이상인 N보다 작거나 같은 양의 정수의 수를 찾아야 합니다. 따라서 입력이 99와 같으면 11, 22, 33, 44, 55, 66, 77, 88, 99와 같은 숫자가 있으므로 출력은 9가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 함수 A()를 정의하면 m, n,가 필요합니다. 렛 :=1 initialize i :=0의 경우, i
다음과 같이 StreamChecker 클래스를 구현한다고 가정합니다. - StreamChecker(words) - 생성자이며 주어진 단어로 데이터 구조를 초기화합니다. =1에 대해 쿼리된 마지막 k개 문자(방금 쿼리된 이 문자를 포함하여 가장 오래된 것부터 최신 순으로)가 주어진 목록에 있는 단어 중 하나의 철자일 때 true를 반환합니다. 따라서 입력이 단어 목록 =[ce, g, lm]과 같으면 [a,b,c,e,f,g,h,i,j,k에 대해 쿼리를 여러 번 호출합니다. ,l,m], 출력은 e, g, m에 대해 true
문자열 S가 있다고 가정하고 2회 이상 발생하는 모든 중복된 연속 하위 문자열을 고려합니다. (중복될 수 있습니다.), 우리는 가능한 가장 긴 길이를 갖는 중복된 부분 문자열을 찾아야 합니다. 그러한 부분 문자열이 없으면 빈 문자열을 반환합니다. 답변이 매우 클 수 있으므로 mod 10^9 + 7로 반환하십시오. 따라서 입력이 ababbaba와 같으면 출력은 bab이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − m :=1e9 + 7 add() 함수를 정의하면, b, return ((a mod m)
행렬과 목표 값이 있다고 가정하고 합계가 목표와 동일한 비어 있지 않은 부분행렬의 수를 찾아야 합니다. 여기서 부분행렬 [(x1, y1), (x2, y2)]은 x1 및 x2 범위에 x가 있고 y1 및 y2 범위에 y가 있는 모든 셀 행렬[x][y]의 집합입니다. 두 부분행렬 [(x1, y1), (x2, y2)] 및 [(x1, y1), (x2, y2)]는 서로 다른 좌표가 있는 경우 다릅니다. 예를 들어 x1이 그렇지 않은 경우 x1과 동일합니다. 따라서 입력이 다음과 같으면 0 1 0 1 1 1 0 1 0 target
두 개의 문자열 str1과 str2가 있다고 가정하고 str1과 str2를 하위 시퀀스로 포함하는 가장 짧은 문자열을 찾아야 합니다. 둘 이상의 결과가 있을 수 있으므로 그 중 하나만 반환합니다. 알다시피 T에서 몇 개의 문자를 삭제하면(아마도 0이고 문자가 T에서 선택됨) 문자열 S가 생성되는 경우 문자열 S를 문자열 T의 하위 시퀀스라고 합니다. 따라서 입력이 acab, bac와 같으면 출력은 bacab이 됩니다. 이는 두 개의 주어진 문자열이 이것의 하위 시퀀스이기 때문입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니
s를 문자열로 가지고 있다고 가정하고 사전순으로 s의 마지막 부분 문자열을 찾아야 합니다. 따라서 입력이 abbbcabbc와 같으면 출력은 cabbc가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − i :=0,j :=1,k :=0 동안 j + k
정수를 저장할 수 있는 두 개의 배열 rr1과 arr2가 있다고 가정합니다. arr1을 엄격하게 증가시키는 데 필요한 최소 작업 수를 찾아야 합니다. 여기에서 두 개의 인덱스 0 <=i
n개의 서버가 있다고 가정합니다. 그리고 이들은 0에서 n-1까지 번호가 매겨져 있으며, 연결[i] =[a,b]는 서버 a와 b 간의 연결을 나타내는 네트워크를 형성하는 무방향 서버 간 연결로 연결됩니다. 모든 서버는 직접 연결되거나 다른 서버를 통해 연결됩니다. 이제 중요한 연결은 연결이 제거되면 일부 서버가 다른 서버에 연결할 수 없게 만드는 연결입니다. 우리는 모든 중요한 연결을 찾아야 합니다. 따라서 입력이 n =4이고 연결 =[[0,1],[1,2],[2,0],[1,3]],인 경우 그러면 출력은 [[1,3]]가 됩니다
하나의 숫자 n이 있다고 가정하고 이 규칙을 사용하여 길이가 n인 문자열을 몇 개나 만들 수 있는지 계산해야 합니다. - 각 문자는 소문자 모음입니다. 각 모음 a 뒤에는 e만 올 수 있습니다. 각 모음 e 뒤에는 a 또는 i만 올 수 있습니다. 각 모음 i 뒤에는 다른 i가 올 수 없습니다. 각 모음 o 뒤에는 i 또는 u만 올 수 있습니다. 각 모음 u 뒤에는 a만 올 수 있습니다. 답이 너무 클 수 있으므로 모듈로 10^9 + 7로 답을 찾습니다. 따라서 입력이 2와 같으면 출력은 10이 됩니다. 가능한 모든 문자열이 ae,
양의 정수 배열 nums가 있다고 가정하고 주어진 배열 nums의 배열 접두어의 가능한 가장 긴 길이를 반환해야 하므로 이 접두어에서 정확히 하나의 요소를 삭제할 수 있으므로 그 안에 나타난 모든 숫자가 삭제됩니다. 같은 주파수를 갖는다. 남아있는 요소가 없으면 하나의 요소를 제거한 후에도 나타나는 모든 숫자가 동일한 빈도(0)를 갖는 것으로 간주됩니다. 따라서 입력이 [3,3,2,2,6,4,4,6]과 같으면 출력은 7이 됩니다. 따라서 인덱스 4에서 요소 6을 제거하면 하위 배열은 [3, 3,2,2,4,4] 여기서 모든 요소는
모든 작업이 startTime[i]에서 endTime[i]까지 수행되도록 예약된 n개의 다른 작업이 있다고 가정하고 해당 작업에 대해 이익[i]을 얻습니다. 우리는 startTime , endTime 및 이익 목록을 알고 있으므로 중첩되는 시간 범위를 가진 하위 집합에 2개의 작업이 없도록 최대 이익을 찾아야 합니다. X 시간에 끝나는 작업을 선택하면 X 시간에 시작하는 다른 작업을 시작할 수 있습니다. 따라서 입력이 startTime =[1,2,3,3]과 같으면 endTime =[3,4,5,6] 이익 =[500,100,400,7