TheRealSamuel/LeetCodeProblem
0564
1{2 "id": 2856,3 "name": "count_complete_subarrays_in_an_array",4 "difficulty": "Medium",5 "link": "https://leetcode.com/problems/count-complete-subarrays-in-an-array/",6 "date": "2023-07-23 00:00:00",7 "task_description": "You are given an array `nums` consisting of **positive** integers. We call a subarray of an array **complete** if the following condition is satisfied: The number of **distinct** elements in the subarray is equal to the number of distinct elements in the whole array. Return _the number of **complete** subarrays_. A **subarray** is a contiguous non-empty part of an array. **Example 1:** ``` **Input:** nums = [1,3,1,2,2] **Output:** 4 **Explanation:** The complete subarrays are the following: [1,3,1,2], [1,3,1,2,2], [3,1,2] and [3,1,2,2]. ``` **Example 2:** ``` **Input:** nums = [5,5,5,5] **Output:** 10 **Explanation:** The array consists only of the integer 5, so any subarray is complete. The number of subarrays that we can choose is 10. ``` **Constraints:** `1 <= nums.length <= 1000` `1 <= nums[i] <= 2000`",8 "public_test_cases": [9 {10 "label": "Example 1",11 "input": "nums = [1,3,1,2,2]",12 "output": "4 "13 },14 {15 "label": "Example 2",16 "input": "nums = [5,5,5,5]",17 "output": "10 "18 }19 ],20 "private_test_cases": [21 {22 "input": [23 985,24 684,25 1562,26 107,27 515,28 123,29 1924,30 1501,31 1874,32 557,33 1773,34 800,35 123,36 827,37 547,38 1285,39 357,40 194,41 227,42 396,43 192,44 751,45 72,46 918,47 1496,48 1174,49 1325,50 1478,51 821,52 799,53 164,54 477,55 1859,56 1431,57 302,58 1636,59 1061,60 612,61 211,62 482,63 1891,64 898,65 378,66 1371,67 1454,68 1034,69 1216,70 1370,71 1014,72 1224,73 1148,74 1453,75 1613,76 204,77 270,78 1502,79 1472,80 1336,81 1238,82 966,83 1761,84 424,85 642,86 1589,87 316,88 71,89 507,90 241,91 1810,92 379,93 1680,94 1772,95 1283,96 1521,97 1631,98 465,99 578,100 83,101 1762,102 1435,103 1743,104 910,105 725,106 1707,107 831,108 571,109 249,110 241,111 504,112 150,113 1239,114 895,115 1084,116 345,117 1593,118 1420,119 969,120 640,121 171,122 1511,123 1146,124 918,125 579,126 1756,127 753,128 289,129 6,130 880,131 777,132 1513,133 1384,134 1928,135 895,136 854,137 1642,138 1498,139 830,140 533,141 1050,142 1045,143 650,144 1031,145 1729,146 381,147 209,148 1528,149 1096,150 941,151 599,152 931,153 401,154 1011,155 1742,156 584,157 126,158 134,159 1224,160 437,161 711,162 451,163 1954,164 1305,165 1279,166 1222,167 1486,168 1362,169 1618,170 1924,171 86,172 1928,173 1401,174 1089,175 45,176 1028,177 903,178 1626,179 1544,180 243,181 917,182 1274,183 1475,184 382,185 1221,186 550,187 1484,188 229,189 108,190 50,191 1621,192 1229,193 1158,194 1633,195 1747,196 1921,197 1309,198 418,199 1147,200 452,201 1944,202 766,203 1006,204 283,205 159,206 144,207 1184,208 1764,209 980,210 936,211 450,212 371,213 103,214 1735,215 2,216 857,217 1035,218 1809,219 181,220 1887,221 997,222 349,223 1384,224 1086,225 279,226 929,227 1777,228 1335,229 607,230 197,231 221,232 404,233 1994,234 738,235 176,236 1159,237 1672,238 1303,239 536,240 14,241 1524,242 1574,243 259,244 386,245 758,246 352,247 429,248 152,249 894,250 1269,251 1814,252 1957,253 964,254 1193,255 1938,256 2000,257 398,258 705,259 828,260 1420,261 1328,262 312,263 1892,264 110,265 1572,266 20,267 649,268 1156,269 891,270 979,271 1337,272 179,273 760,274 1712,275 847,276 407,277 518,278 553,279 804,280 708,281 1914,282 871,283 453,284 622,285 987,286 1370,287 55,288 710,289 294,290 827,291 1872,292 106,293 91,294 1695,295 633,296 301,297 877,298 64,299 1759,300 659,301 515,302 1519,303 328,304 535,305 917,306 1384,307 607,308 278,309 512,310 676,311 480,312 283,313 1592,314 965,315 1490,316 915,317 194,318 965,319 1636,320 86,321 33,322 1734,323 317,324 1226,325 1802,326 872,327 983,328 1220,329 1016,330 1963,331 484,332 1252,333 724,334 1291,335 1189,336 971,337 239,338 1002,339 412,340 109,341 407,342 1898,343 743,344 1048,345 1367,346 1106,347 18,348 1520,349 1837,350 1305,351 51,352 268,353 1602,354 1992,355 1022,356 1649,357 1340,358 1980,359 1893,360 1913,361 524,362 68,363 1534,364 290,365 440,366 183,367 177,368 587,369 1553,370 1186,371 861,372 405,373 1355,374 1386,375 1078,376 1564,377 43,378 1647,379 1490,380 1640,381 856,382 1510,383 1949,384 88,385 739,386 331,387 89,388 398,389 1298,390 1014,391 970,392 581,393 1270,394 241,395 1540,396 547,397 826,398 818,399 1744,400 555,401 1383,402 1299,403 813,404 1011,405 550,406 1295,407 17,408 1375,409 712,410 1679,411 1793,412 1774,413 151,414 1651,415 1510,416 192,417 1929,418 632,419 1500,420 992,421 742,422 1497,423 463,424 201,425 1847,426 1027,427 1409,428 1976,429 1267,430 402,431 1995,432 1438,433 1397,434 1975,435 1938,436 1826,437 67,438 1003,439 1710,440 752,441 1996,442 516,443 1142,444 1329,445 913,446 1332,447 824,448 1316,449 223,450 1020,451 1610,452 1792,453 60,454 332,455 241,456 1780,457 1116,458 423,459 1144,460 1849,461 1305,462 597,463 112,464 1224,465 1332,466 1207,467 1515,468 403,469 160,470 457,471 1301,472 698,473 1983,474 1558,475 1284,476 636,477 437,478 820,479 1082,480 1559,481 1958,482 1599,483 1583,484 1357,485 1393,486 1267,487 675,488 1378,489 35,490 1751,491 1493,492 105,493 477,494 1779,495 1512,496 1613,497 460,498 548,499 16,500 1085,501 1142,502 332,503 161,504 1086,505 288,506 1230,507 1001,508 419,509 403,510 356,511 552,512 877,513 1915,514 657,515 699,516 1089,517 1093,518 178,519 1356,520 1935,521 1835,522 1804,523 179,524 578,525 658,526 1784,527 72,528 1696,529 841,530 1063,531 1074,532 341,533 625,534 925,535 240,536 154,537 1974,538 1094,539 1841,540 1987,541 334,542 1676,543 1844,544 1302,545 1252,546 591,547 1412,548 518,549 655,550 360,551 1753,552 982,553 240,554 866,555 629,556 1084,557 1654,558 850,559 570,560 356,561 1320,562 1201,563 924,564 1809,565 378,566 107,567 1907,568 441,569 1677,570 1219,571 256,572 1033,573 1589,574 441,575 95,576 631,577 1807,578 1714,579 994,580 933,581 1901,582 111,583 216,584 1982,585 1848,586 465,587 1338,588 953,589 124,590 1245,591 1811,592 1281,593 1403,594 462,595 1343,596 728,597 901,598 132,599 1311,600 1570,601 136,602 1902,603 1650,604 689,605 1080,606 629,607 1351,608 656,609 1029,610 614,611 27,612 1742,613 605,614 1133,615 1042,616 1366,617 589,618 1788,619 1876,620 871,621 466,622 23,623 794,624 942,625 1823,626 1596,627 649,628 171,629 1767,630 1683,631 702,632 374,633 780,634 1831,635 1228,636 1159,637 1866,638 748,639 344,640 1551,641 776,642 247,643 166,644 1800,645 953,646 1097,647 1351,648 1200,649 1444,650 299,651 1060,652 1961,653 9,654 61,655 1487,656 6,657 6,658 1370,659 735,660 585,661 1949,662 1564,663 1626,664 1440,665 1994,666 1074,667 80,668 428,669 543,670 858,671 1445,672 813,673 718,674 1431,675 20,676 1045,677 430,678 996,679 1992,680 627,681 741,682 853,683 1385,684 1637,685 684,686 297,687 430,688 1141,689 174,690 631,691 1499,692 1623,693 1303,694 1078,695 1719,696 1045,697 1894,698 1932,699 1114,700 993,701 1677,702 833,703 730,704 1425,705 800,706 1945,707 600,708 1568,709 1283,710 30,711 1629,712 1426,713 179,714 163,715 848,716 1164,717 284718 ],719 "output": 1720 },721 {722 "input": [723 447,724 1820,725 1472,726 478,727 50,728 1364,729 1189,730 1957,731 431,732 1982,733 139,734 1875,735 1987,736 632,737 1753,738 1991,739 1089,740 214,741 1947,742 848,743 737,744 1149,745 187,746 1512,747 1977,748 1254,749 1193,750 496,751 1498,752 534,753 1489,754 665,755 257,756 620,757 1452,758 505,759 1085,760 617,761 1990,762 1127,763 265,764 99,765 590,766 1735,767 1872,768 34,769 509,770 916,771 37,772 1215,773 1770,774 512,775 1753,776 1103,777 1046,778 876,779 1641,780 1443,781 1186,782 786,783 1182,784 156,785 530,786 1672,787 1367,788 1834,789 553,790 54,791 1526,792 74,793 722,794 416,795 1856,796 865,797 21,798 1289,799 905,800 537,801 1584,802 755,803 69,804 370,805 617,806 925,807 305,808 632,809 1547,810 1661,811 374,812 1504,813 584,814 1101,815 467,816 218,817 1494,818 1137,819 1214,820 1554,821 593,822 1893,823 157,824 1545,825 516,826 824,827 26,828 138,829 1669,830 1756,831 30,832 1059,833 1726,834 652,835 1475,836 864,837 738,838 1547,839 1856,840 1517,841 1218,842 1958,843 1865,844 1272,845 279,846 1977,847 319,848 893,849 845,850 1789,851 1113,852 1254,853 1845,854 1034,855 231,856 1231,857 1594,858 1615,859 1553,860 1003,861 922,862 1219,863 253,864 1466,865 1542,866 347,867 1672,868 459,869 1106,870 1212,871 1878,872 1245,873 509,874 148,875 1552,876 662,877 1382,878 752,879 1913,880 1274,881 1899,882 1713,883 1239,884 1224,885 1608,886 100,887 1587,888 1677,889 444,890 352,891 471,892 500,893 1182,894 1019,895 1417,896 1522,897 1862,898 52,899 823,900 1942,901 1183,902 1121,903 1111,904 1642,905 1766,906 452,907 1002,908 1103,909 963,910 647,911 819,912 121,913 409,914 251,915 1227,916 1268,917 1411,918 1056,919 297,920 375,921 1911,922 1037,923 1088,924 848,925 1635,926 488,927 873,928 135,929 496,930 585,931 347,932 1660,933 1439,934 64,935 1434,936 666,937 225,938 992,939 1014,940 345,941 152,942 291,943 1954,944 1780,945 1127,946 1426,947 703,948 1980,949 73,950 707,951 419,952 856,953 1026,954 160,955 915,956 750,957 405,958 1041,959 1005,960 1146,961 912,962 890,963 141,964 1329,965 777,966 481,967 451,968 1937,969 1924,970 1417,971 929,972 1952,973 1983,974 1708,975 1478,976 1857,977 1927,978 1959,979 405,980 1853,981 199,982 301,983 428,984 1954,985 1433,986 1034,987 1258,988 1914,989 22,990 1516,991 415,992 2000,993 1137,994 1857,995 1519,996 185,997 1136,998 1965,999 1565,1000 585,1001 1327,1002 1223,1003 596,1004 1187,1005 1859,1006 1468,1007 1238,1008 1471,1009 1244,1010 1424,1011 583,1012 1320,1013 140,1014 516,1015 1261,1016 1369,1017 1167,1018 1773,1019 1110,1020 1069,1021 1558,1022 418,1023 1884,1024 656,1025 1501,1026 476,1027 1150,1028 1159,1029 1145,1030 196,1031 321,1032 229,1033 1727,1034 526,1035 1410,1036 545,1037 364,1038 160,1039 1368,1040 1647,1041 627,1042 1411,1043 969,1044 1647,1045 1999,1046 1169,1047 1076,1048 475,1049 1443,1050 646,1051 1938,1052 1870,1053 67,1054 1136,1055 260,1056 1068,1057 1710,1058 1350,1059 1033,1060 1015,1061 860,1062 1215,1063 1767,1064 1608,1065 1422,1066 1927,1067 1831,1068 968,1069 1147,1070 1712,1071 952,1072 948,1073 333,1074 568,1075 357,1076 1103,1077 1372,1078 899,1079 750,1080 1528,1081 367,1082 1603,1083 1492,1084 947,1085 800,1086 554,1087 1215,1088 1934,1089 76,1090 1659,1091 1425,1092 1882,1093 260,1094 731,1095 1487,1096 1077,1097 1097,1098 1996,1099 33,1100 1378,1101 810,1102 652,1103 1201,1104 614,1105 1110,1106 1375,1107 690,1108 82,1109 1442,1110 648,1111 1416,1112 1849,1113 240,1114 520,1115 673,1116 532,1117 1608,1118 1752,1119 161,1120 1552,1121 294,1122 397,1123 111,1124 1431,1125 1306,1126 467,1127 1166,1128 1466,1129 902,1130 1069,1131 625,1132 440,1133 1520,1134 671,1135 266,1136 999,1137 226,1138 1825,1139 1649,1140 1473,1141 1090,1142 1929,1143 259,1144 1401,1145 646,1146 1889,1147 1515,1148 1624,1149 896,1150 1622,1151 1214,1152 1410,1153 376,1154 1866,1155 418,1156 26,1157 305,1158 254,1159 1324,1160 174,1161 1277,1162 781,1163 30,1164 604,1165 1451,1166 539,1167 610,1168 406,1169 472,1170 52,1171 833,1172 876,1173 45,1174 1283,1175 1822,1176 1710,1177 1403,1178 295,1179 671,1180 1757,1181 1404,1182 942,1183 1007,1184 1918,1185 1103,1186 1835,1187 152,1188 1916,1189 1751,1190 824,1191 1393,1192 1448,1193 1579,1194 792,1195 1620,1196 1850,1197 147,1198 69,1199 1191,1200 378,