diff --git a/.gitignore b/.gitignore index 259148f..db15795 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,26 @@ *.exe *.out *.app + +*.xcuserstate +*.DS_Store +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata/ + +## Other +*.moved-aside +*.xccheckout +*.xcscmblueprint + +## Obj-C/Swift specific +*.hmap +*.ipa +*.dSYM.zip +*.dSYM \ No newline at end of file diff --git "a/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-01\344\270\244\346\225\260\344\271\213\345\222\214/main.cpp" "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-01\344\270\244\346\225\260\344\271\213\345\222\214/main.cpp" index fa775cb..2b87f54 100644 --- "a/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-01\344\270\244\346\225\260\344\271\213\345\222\214/main.cpp" +++ "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-01\344\270\244\346\225\260\344\271\213\345\222\214/main.cpp" @@ -27,21 +27,16 @@ using namespace std; class Solution { public: - vector twoSum(vector& nums, int target) - { + vector twoSum(vector& nums, int target){ vector result; size_t size = nums.size(); - if (size < 2) - { + if (size < 2){ return result; } - for (int i = 0; i < size; ++i) - { - for (int j = i + 1; j < size; ++j) - { - if ((nums[i] + nums[j]) == target) - { + for (int i = 0; i < size; ++i){ + for (int j = i + 1; j < size; ++j){ + if ((nums[i] + nums[j]) == target){ result.push_back(i); result.push_back(j); return result; diff --git "a/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-1000 \346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\346\211\276\345\210\260\346\234\200\345\244\247\345\200\274\345\222\214\346\234\200\345\260\217\345\200\274/main.cpp" "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-1000 \346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\346\211\276\345\210\260\346\234\200\345\244\247\345\200\274\345\222\214\346\234\200\345\260\217\345\200\274/main.cpp" new file mode 100644 index 0000000..5ab0851 --- /dev/null +++ "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-1000 \346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\346\211\276\345\210\260\346\234\200\345\244\247\345\200\274\345\222\214\346\234\200\345\260\217\345\200\274/main.cpp" @@ -0,0 +1,112 @@ +// +// main.cpp +// leetcode-1000 无序数组中找到最大值和最小值 +// +// Created by 佐毅 on 2020/2/6. +// Copyright © 2020 dfjr. All rights reserved. +// + +/** + 在一个又N个数的无序数组中,最少需要比较多少次可以求出这个数组的最大值和最小值? + + 此题在《编程之美》上有,并且LZ最近在面百度的时候也被问到了类似的题目,微软面试好像也考到了这题。 + + 那么我们来分析,如果实在一个没有重复元素出现的数组中,我们发现一般情况下,最大的和最小的一般不是同一个,所以有好几种方法来求。 + + 第一种:整个数组扫两遍,那么时间复杂度为O(2*N)。肯定不行。 + + 第二种:用分而治之的方法,先让相邻的两个数进行比较,并将大的数放在偶数位置上,将小的数放在奇数位置上,那么就需要N/2次,然后再从奇偶位置上求出最大最小值,这样就还需要比较N/2,所以我们可以发现一共需要1.5N次比较。 + + 第三种,也是用分而治之的思想,但是比较次数并没有减少,先将所有数分成两部分,分别对前一部分和后一部分分别求最大、最小值,最后再做一次比较。但是这样的比较次数并不会少,也是N/2次。 + + 这题可以引申为另一种类型,赛马问题。 + + 首先有25匹马,但是一共只有5条跑道,也就是每次只能有5匹马同时进行赛马比赛,那么最少需要比赛几次才能比出所有25匹马中的最快的3匹马? + + 分析:首先我们将所有25匹马分成5批次,每一个批次都有5匹马,那么这样就需要比5次,可以决出每一组中的最快的那一匹马,然后再对5个组中的第一名再进行一次赛马比赛,也就是再比一次,那么可以决出前三名来,那么这次比赛的后两名肯定没戏了,连同这两匹马所在那两组里的所有马都是没有希望了,因为这两匹马已经是这两组里跑得最快的了,所以现在我们只需要考虑前三名的马匹即可。那么我们现在可以确定第一名一定是所有马中跑得最快的那一匹马,但是题目需要求前三名,所以我们还需要比。那么我们接下来需要拿第一名所在那一组中的第二名和第三名,然后是第二名以及它所在的那组的第二名,第三名进行加赛一场,正好是5匹马,也就是需要7场,那么这样比下来是一定可以确定前三名来的。这道题主要考的是逻辑。 + + 1、首先5个跑道同时进行比赛,这样就是跑了5次,我们可以分别得到每个跑道的第一名:A1,B1,C1,D1,E1。 + + 2、再将5个跑道的第一名放到一个跑道进行比赛,这样我们就可以得到第一名了A1。 输入图片说明 + + 3、此时总共跑了6次,我们已经知道第一名A1,但第二、三名还不知道。 + + 4、第6次比赛我们得知A1>B1>C1>D1>E1,很明显D和E组被淘汰了,现在还剩下A2、A3、B1、B2、C1这5个争第二、三名。 + + 5、将A2、A3、B1、B2、C1进行比赛,得到A2>A3>B1>B2>C1,这样我们就知道第二、三名就是A2和A3了,此时总共比赛了7次,这是最理想的次数。 + */ + + +#include +#include + +using namespace std; + +template +int getArrayLen(T&array){ + return sizeof(array) / sizeof(array[0]); +} + +class Solution{ +public: + bool GetMaxAndMin(int *arr, int len, int& Max, int& Min){ + // 参数检验 + if(arr == nullptr || len <= 0){ + return false; + } + + if(len <= 1){ + Max = Min = arr[len-1]; + return true; + } + + //Max和Min初始化 + Max = arr[0] > arr[1] ? arr[0] : arr[1]; + Min = arr[0] > arr[1] ? arr[1] : arr[0]; + + int i; + int n; + + //判断数组长度为奇数还是偶数 + if(len % 2) + n = len - 1; + else + n = len; + + for(i=2; i arr[i+1]){ + Max = Max > arr[i] ? Max : arr[i]; + Min = Min > arr[i + 1] ? arr[i + 1] : Min; + }else{ + Max = Max > arr[i + 1] ? Max : arr[i + 1]; + Min = Min > arr[i] ? arr[i] : Min; + } + } + + /*如果length为奇数,则剩下最后一个元素没有做过比较*/ + if(i < len){ + Max = Max > arr[i] ? Max : arr[i]; + Min = Min > arr[i] ? arr[i] : Min; + } + + return true; + } +}; + +int main(int argc, const char * argv[]) { + + int a[] = {8,11,5,2,1,15,22}; + + Solution b; + + int Max = 0; + int Min = 0; + + if(b.GetMaxAndMin(a, getArrayLen(a), Max, Min)){ + cout << "Max : " << Max << endl; + cout << "Min : " << Min << endl; + } + + return 0; + +} diff --git "a/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-1000 \346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\346\211\276\345\210\260\346\234\200\345\244\247\345\200\274\345\222\214\346\234\200\345\260\217\345\200\274/\346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\346\211\276\345\210\260\346\234\200\345\244\247\345\200\274\345\222\214\346\234\200\345\260\217\345\200\274.png" "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-1000 \346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\346\211\276\345\210\260\346\234\200\345\244\247\345\200\274\345\222\214\346\234\200\345\260\217\345\200\274/\346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\346\211\276\345\210\260\346\234\200\345\244\247\345\200\274\345\222\214\346\234\200\345\260\217\345\200\274.png" new file mode 100644 index 0000000..064c4cb Binary files /dev/null and "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-1000 \346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\346\211\276\345\210\260\346\234\200\345\244\247\345\200\274\345\222\214\346\234\200\345\260\217\345\200\274/\346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\346\211\276\345\210\260\346\234\200\345\244\247\345\200\274\345\222\214\346\234\200\345\260\217\345\200\274.png" differ diff --git "a/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-260 \345\217\252\345\207\272\347\216\260\344\270\200\346\254\241\347\232\204\346\225\260\345\255\227 III/main.cpp" "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-260 \345\217\252\345\207\272\347\216\260\344\270\200\346\254\241\347\232\204\346\225\260\345\255\227 III/main.cpp" index 5cfe8ef..bf1f0bb 100644 --- "a/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-260 \345\217\252\345\207\272\347\216\260\344\270\200\346\254\241\347\232\204\346\225\260\345\255\227 III/main.cpp" +++ "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-260 \345\217\252\345\207\272\347\216\260\344\270\200\346\254\241\347\232\204\346\225\260\345\255\227 III/main.cpp" @@ -22,12 +22,10 @@ class Solution { public: - int[] SingleNumber(int[] nums) - { + int[] SingleNumber(int[] nums){ int sign = 0; //取得数组中两个唯一数的按位异或结果 - for (int i = 0; i < nums.Length; i++) - { + for (int i = 0; i < nums.Length; i++){ sign ^= nums[i]; } //获取区分两个唯一数的比特位所代表的值 @@ -35,8 +33,7 @@ class Solution { sign &= -sign; int[] result = new int[2]; //通过标识,区分两个数组 - for (int i = 0; i < nums.Length; i++) - { + for (int i = 0; i < nums.Length; i++){ if ((nums[i] & sign) == sign) result[0] ^= nums[i]; else diff --git "a/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-999 \345\257\273\346\211\276\346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\347\254\254K\345\244\247\347\232\204\346\225\260/main.cpp" "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-999 \345\257\273\346\211\276\346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\347\254\254K\345\244\247\347\232\204\346\225\260/main.cpp" index 22c2ddd..0882d08 100644 --- "a/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-999 \345\257\273\346\211\276\346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\347\254\254K\345\244\247\347\232\204\346\225\260/main.cpp" +++ "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-999 \345\257\273\346\211\276\346\227\240\345\272\217\346\225\260\347\273\204\344\270\255\347\254\254K\345\244\247\347\232\204\346\225\260/main.cpp" @@ -19,7 +19,7 @@ class Solution{ public: //直接从大到小排序,排好序后,第k大的数就是arr[k-1]。 - int Partition(int a[], int i, int j){ + int partition(int a[], int i, int j){ int temp = a[i]; if (i < j){ while (i < j){ @@ -35,17 +35,17 @@ class Solution{ return -1; } - int Search(int a[], int i, int j, int k){ - int m = Partition(a, i, j); + int search(int a[], int i, int j, int k){ + int m = partition(a, i, j); if (k==m-i+1) return a[m]; else if (kk){ return findMaxK(arr, k, start, q - 1); } @@ -80,40 +80,38 @@ class Solution{ } //小顶堆法 - void adjustHeap(int arr[], int index, int k){ - int min = index; - int left = 2 * index + 1; - int right = 2 * index + 2; - if (left < k && arr[left] < arr[min]){ - min = left; - } - if (right = 0; i--){ - adjustHeap(arr, i, k); - } - - //遍历剩下的元素 - for (int i = k; i < len; i++){ - if (arr[i]>arr[0]){ - swap(arr[0], arr[i]); - adjustHeap(arr, 0, k); - } - } - - return arr[0]; - } + void adjustHeap(int arr[], int index, int k){ + int min = index; + int left = 2 * index + 1; + int right = 2 * index + 2; + if (left < k && arr[left] < arr[min]){ + min = left; + } + if (right = 0; i--){ + adjustHeap(arr, i, k); + } + + //遍历剩下的元素 + for (int i = k; i < len; i++){ + if (arr[i]>arr[0]){ + swap(arr[0], arr[i]); + adjustHeap(arr, 0, k); + } + } + return arr[0]; + } }; diff --git "a/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-Array/main.cpp" "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-Array/main.cpp" new file mode 100644 index 0000000..317b865 --- /dev/null +++ "b/\347\256\227\346\263\225\346\227\266\347\251\272/leetcode-Array/main.cpp" @@ -0,0 +1,271 @@ +// +// main.cpp +// leetcode-Array +// +// Created by 佐毅 on 2020/2/7. +// Copyright © 2020 dfjr. All rights reserved. +// + +#include +#include +#include + + +/** + 1、移除数组中包含 K 的元素,并返回数组的长度 + + 譬如数组为1,2,2,3,2,4,我们需要删除2,首先初始 化i和j为0,指向第一个位置,因为第一个元素为1,所以A[0] = A[0],i和j都加1,而 第二个元素为2,我们递增i,直到碰到3,此时A[1] = A[3],也就是3,递增i和j,这 时候下一个元素又是2,递增i,直到碰到4,此时A[2] = A[5],也就是4,再次递增i 和j,这时候数组已经遍历完毕,结束。这时候j的值为3,刚好就是新的数组的长 度。 + + 2、一个排序好的数组里面删除 重复的元素。 For example, Given input array A = [1,1,2],Your function should return length = 2, and A is now [1,2]. + 首先我们需要知道,对于一个排好序的数组来说, A[N + 1] >= A[N] ,我们仍 然使用两个游标i和j来处理,假设现在i = j + 1,如果A[i] == A[j],那么我们递增i, 直到A[i] != A[j],这时候我们再设置A[j + 1] = A[i],同时递增i和j,重复上述过程直 到遍历结束。 + + 3、同样是移除重复的元素,但是可以允许最多两次重复元素存在。 For example, Given sorted array A = [1,1,1,2,2,3],Your function should return length = 5, and A is now [1,1,2,2,3]. + 仍然是第一题的思路,但是我们需要用一个计数器来记录重复的次数,如果重复次 数大于等于2,我们会按照第一题的方式处理,如果不是重复元素了,我们将计数 器清零。 + + 4、加1 + 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 + 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 + 你可以假设除了整数 0 之外,这个整数不会以零开头。 + + 示例 1: + + 输入: [1,2,3] + 输出: [1,2,4] + 解释: 输入数组表示数字 123。 + + 5、帕斯卡三角 + Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Return + [ + [1], + [1,1], + [1,2,1], + [1,3,3,1], + [1,4,6,4,1] + ] + 要得到一个帕斯卡三角,我们只需要找到规律即可。 + 1、第k层有k个元素 + 2、每层第一个以及最后一个元素值为1 + 3、对于第k(k > 2)层第n(n > 1 && n < k)个元素A[k][n],A[k][n] = A[k-1][n-1] + A[k-1][n] + + 6、合并两个有序数组 + 输入: + nums1 = [1,2,3,0,0,0], m = 3 + nums2 = [2,5,6], n = 3 + + 输出: [1,2,2,3,5,6] + + + 7、两数之和 + Input: numbers={2, 7, 11, 15}, target=9 Output: index1=1, index2=2 + + 8、给定一个整型数组num,找出这个数组中满足这个条件的所有数字: num[i]+num[j]+num[k] = 0. 并且所有的答案是要和其他不同的,也就是说两个相同 的答案是不被接受的。 + + */ + +#include +using namespace std; + +template +int getArrayLen(T&array){ + return sizeof(array) / sizeof(array[0]); +} + +class Solution{ +public: + //1、移除数组中包含 K 的元素,并返回数组的长度 + int removeElement(int A[], int n, int elem) { + int i = 0; + int j = 0; + for(i = 0; i < n; i++) { + if(A[i] == elem) { + continue; + } + A[j] = A[i]; + j++; + } + return j; + } + + //2、一个排序好的数组里面删除 重复的元素。 + int removeDuplicates(int A[], int n) { + if(n == 0) { + return 0; + } + int j = 0; + for(int i = 1; i < n; i++) { + if(A[j] != A[i]) { + A[++j] = A[i]; + } + } + return j + 1; + } + + //3、同样是移除重复的元素,但是可以允许最多两次重复元素存在 + int removeDuplicatess(int A[], int n) { + if(n == 0) { + return 0; + } + int j = 0; + int num = 0; + for(int i = 1; i < n; i++) { + if(A[j] == A[i]) { + num++; + if(num < 2) { + A[++j] = A[i]; + } + } else { + A[++j] = A[i]; + num = 0; + } + } + return j + 1; + } + + //4、加1 + vector plusOne(vector &digits) { + vector res(digits.size(), 0); + int sum = 0; + int one = 1; + for(int i = (int)digits.size() - 1; i >= 0; i--) { + sum = one + digits[i]; + one = sum / 10; + res[i] = sum % 10; + } + if(one > 0) { + res.insert(res.begin(), one); + } + return res; + } + + //5、帕斯卡三角 + vector > generate(int numRows) { + vector > vals; + vals.resize(numRows); + + for(int i = 0; i < numRows; i++) { + vals[i].resize(i + 1); + vals[i][0] = 1; + vals[i][vals[i].size() - 1] = 1; + for(int j = 1; j < vals[i].size() - 1; j++) { + vals[i][j] = vals[i - 1][j - 1] + vals[i- 1][j]; + } + } + return vals; + } + + //6、合并两个有序数组 + int* merge(int* nums1, int* nums2 ,int m, int n) { + + int i = m - 1, j = n - 1, tar = m + n - 1; + + while (j >= 0) { + nums1[tar--] = i >= 0 && nums1[i] > nums2[j] ? nums1[i--] : nums2[j--]; + } + return nums1; + } + + //7、两数之和 + vector twoSums(vector& nums, int target) { + unordered_map record; + vector result; + for(int i = 0 ; i < nums.size() ; i ++){ + int complement = target - nums[i]; + if(record.find(complement) != record.end()){ + int res[] = {i, record[complement]}; + return vector(res, res + 2); + } + + record[nums[i]] = i; + } + return result; + } + + + //遍历一维数组 + void reverse_index(vector vec){ + int i; + cout << "reverse index : " << endl; + for (i = 0; i < vec.size(); i++){ + cout << vec[i] << " "; + } + } + + //遍历二维数组 + void reverse_indexs(vector> vec){ + int i,j; + cout << "Use index : " << endl; + for (i = 0; i < vec.size(); i++) + { + for(j = 0; j < vec[i].size(); j++) + cout << vec[i][j] << " "; + cout << endl; + } + } +}; + +int main(int argc, const char * argv[]) { + int a[] = {1,2,4,5,2,6,5}; + + Solution solution; + + cout << solution.removeElement(a , getArrayLen(a), 5); + + int b[] = {1,2,3,4,4,5,5}; + cout << solution.removeDuplicates(b , getArrayLen(b)); + cout << endl; + cout << endl; + + + int c[] = {1,2,3,4,4,5,5}; + cout << solution.removeDuplicatess(c , getArrayLen(c)); + cout << endl; + cout << endl; + + + vector digits; + vector reslut; + + digits.push_back(1); + digits.push_back(2); + digits.push_back(3); + + reslut = solution.plusOne(digits); + solution.reverse_index(reslut); + cout << endl; + cout << endl; + + + vector> vec; + vec = solution.generate(6); + solution.reverse_indexs(vec); + cout << endl; + cout << endl; + + + int A[10] = {1, 2, 3, 4, 5}; + int B[5] = {2, 3, 5, 7, 9}; + int* C = solution.merge(A, B, 5, 5); + for (int i = 0; i < 10; i++) { + cout << C[i] << " "; + } + cout << endl; + cout << endl; + + + + std::vector nums; + std::vector resultSum; + + nums.push_back(2); + nums.push_back(11); + nums.push_back(7); + nums.push_back(15); + + resultSum = solution.twoSums(nums, 18); + solution.reverse_index(resultSum); + cout << endl; + cout << endl; + + + return 0; +} diff --git "a/\347\256\227\346\263\225\346\227\266\347\251\272/\345\255\227\347\254\246\344\270\262\345\214\271\351\205\215/main.cpp" "b/\347\256\227\346\263\225\346\227\266\347\251\272/\345\255\227\347\254\246\344\270\262\345\214\271\351\205\215/main.cpp" index 5430f13..f634045 100644 --- "a/\347\256\227\346\263\225\346\227\266\347\251\272/\345\255\227\347\254\246\344\270\262\345\214\271\351\205\215/main.cpp" +++ "b/\347\256\227\346\263\225\346\227\266\347\251\272/\345\255\227\347\254\246\344\270\262\345\214\271\351\205\215/main.cpp" @@ -6,13 +6,6 @@ // Copyright © 2019年 dfjr. All rights reserved. // -/*--------------------------------------------- - * 日期:2015-02-14 - * 作者:SJF0115 - * 题目: 字符串匹配 - * 来源:腾讯 - * 博客: - -----------------------------------------------*/ #include #include using namespace std; diff --git "a/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/project.pbxproj" "b/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/project.pbxproj" index 594f216..ad97ec4 100644 --- "a/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/project.pbxproj" +++ "b/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/project.pbxproj" @@ -56,6 +56,8 @@ 0AAD209523E56CFE002B485B /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AAD209423E56CFE002B485B /* main.cpp */; }; 0AAD20A023E5758D002B485B /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AAD209F23E5758D002B485B /* main.cpp */; }; 0AAD20A423E5793B002B485B /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AAD209423E56CFE002B485B /* main.cpp */; }; + 0ABA932023EC6C5E003A2F03 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0ABA931F23EC6C5E003A2F03 /* main.cpp */; }; + 0ABA933723EC831C003A2F03 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0ABA933623EC831C003A2F03 /* main.cpp */; }; 0AD19FCB23E677DF00A0E2EB /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AD19FCA23E677DF00A0E2EB /* main.cpp */; }; 0AD19FD723E67B8A00A0E2EB /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AD19FD623E67B8A00A0E2EB /* main.cpp */; }; 0AD19FE223E67E4D00A0E2EB /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AD19FE123E67E4D00A0E2EB /* main.cpp */; }; @@ -516,6 +518,24 @@ ); runOnlyForDeploymentPostprocessing = 1; }; + 0ABA931B23EC6C5E003A2F03 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; + 0ABA933223EC831C003A2F03 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; 0AD19FC623E677DF00A0E2EB /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -799,6 +819,11 @@ 0AAD209423E56CFE002B485B /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; 0AAD209D23E5758D002B485B /* leetcode-04 三数之和 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "leetcode-04 三数之和"; sourceTree = BUILT_PRODUCTS_DIR; }; 0AAD209F23E5758D002B485B /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 0ABA931D23EC6C5E003A2F03 /* leetcode-1000 无序数组中找到最大值和最小值 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "leetcode-1000 无序数组中找到最大值和最小值"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0ABA931F23EC6C5E003A2F03 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 0ABA932423EC7119003A2F03 /* 无序数组中找到最大值和最小值.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "无序数组中找到最大值和最小值.png"; sourceTree = ""; }; + 0ABA933423EC831C003A2F03 /* leetcode-Array */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "leetcode-Array"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0ABA933623EC831C003A2F03 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; 0AD19FC823E677DF00A0E2EB /* leetcode-107 二叉树的层次遍历 II */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "leetcode-107 二叉树的层次遍历 II"; sourceTree = BUILT_PRODUCTS_DIR; }; 0AD19FCA23E677DF00A0E2EB /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; 0AD19FCF23E6789100A0E2EB /* varp8.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = varp8.gif; sourceTree = ""; }; @@ -1193,6 +1218,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 0ABA931A23EC6C5E003A2F03 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0ABA933123EC831C003A2F03 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 0AD19FC523E677DF00A0E2EB /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1679,6 +1718,8 @@ 0A9AC11323E94E2D009E2264 /* leetcode-167 两数之和 II - 输入有序数组 */, 0A9AC0FA23E8140B009E2264 /* leetcode-260 只出现一次的数字 III */, 0A2CF10523EBE5EE0054EF33 /* leetcode-999 寻找无序数组中第K大的数 */, + 0ABA931E23EC6C5E003A2F03 /* leetcode-1000 无序数组中找到最大值和最小值 */, + 0ABA933523EC831C003A2F03 /* leetcode-Array */, 0AA26B80224CCD1B00A29E79 /* 索引堆 */, 0A2EEADC224A218F00E5EDB4 /* 图论 */, 0A3D870E223F7ED0005F499E /* 堆排序 */, @@ -1758,6 +1799,8 @@ 0A2CF0ED23EBC5710054EF33 /* leetcode-141 环形链表 */, 0A2CF0F823EBD6900054EF33 /* leetcode-138 复制带随机指针的链表 */, 0A2CF10423EBE5EE0054EF33 /* leetcode-999 寻找无序数组中第K大的数 */, + 0ABA931D23EC6C5E003A2F03 /* leetcode-1000 无序数组中找到最大值和最小值 */, + 0ABA933423EC831C003A2F03 /* leetcode-Array */, ); name = Products; sourceTree = ""; @@ -1888,6 +1931,23 @@ path = "leetcode-04 三数之和"; sourceTree = ""; }; + 0ABA931E23EC6C5E003A2F03 /* leetcode-1000 无序数组中找到最大值和最小值 */ = { + isa = PBXGroup; + children = ( + 0ABA931F23EC6C5E003A2F03 /* main.cpp */, + 0ABA932423EC7119003A2F03 /* 无序数组中找到最大值和最小值.png */, + ); + path = "leetcode-1000 无序数组中找到最大值和最小值"; + sourceTree = ""; + }; + 0ABA933523EC831C003A2F03 /* leetcode-Array */ = { + isa = PBXGroup; + children = ( + 0ABA933623EC831C003A2F03 /* main.cpp */, + ); + path = "leetcode-Array"; + sourceTree = ""; + }; 0AD19FC923E677DF00A0E2EB /* leetcode-107 二叉树的层次遍历 II */ = { isa = PBXGroup; children = ( @@ -2862,6 +2922,40 @@ productReference = 0AAD209D23E5758D002B485B /* leetcode-04 三数之和 */; productType = "com.apple.product-type.tool"; }; + 0ABA931C23EC6C5E003A2F03 /* leetcode-1000 无序数组中找到最大值和最小值 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0ABA932323EC6C5E003A2F03 /* Build configuration list for PBXNativeTarget "leetcode-1000 无序数组中找到最大值和最小值" */; + buildPhases = ( + 0ABA931923EC6C5E003A2F03 /* Sources */, + 0ABA931A23EC6C5E003A2F03 /* Frameworks */, + 0ABA931B23EC6C5E003A2F03 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "leetcode-1000 无序数组中找到最大值和最小值"; + productName = "leetcode-1000 无序数组中找到最大值和最小值"; + productReference = 0ABA931D23EC6C5E003A2F03 /* leetcode-1000 无序数组中找到最大值和最小值 */; + productType = "com.apple.product-type.tool"; + }; + 0ABA933323EC831C003A2F03 /* leetcode-Array */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0ABA933823EC831C003A2F03 /* Build configuration list for PBXNativeTarget "leetcode-Array" */; + buildPhases = ( + 0ABA933023EC831C003A2F03 /* Sources */, + 0ABA933123EC831C003A2F03 /* Frameworks */, + 0ABA933223EC831C003A2F03 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "leetcode-Array"; + productName = "leetcode-Array"; + productReference = 0ABA933423EC831C003A2F03 /* leetcode-Array */; + productType = "com.apple.product-type.tool"; + }; 0AD19FC723E677DF00A0E2EB /* leetcode-107 二叉树的层次遍历 II */ = { isa = PBXNativeTarget; buildConfigurationList = 0AD19FCC23E677DF00A0E2EB /* Build configuration list for PBXNativeTarget "leetcode-107 二叉树的层次遍历 II" */; @@ -3290,6 +3384,12 @@ 0AAD209C23E5758D002B485B = { CreatedOnToolsVersion = 11.3.1; }; + 0ABA931C23EC6C5E003A2F03 = { + CreatedOnToolsVersion = 11.3.1; + }; + 0ABA933323EC831C003A2F03 = { + CreatedOnToolsVersion = 11.3.1; + }; 0AD19FC723E677DF00A0E2EB = { CreatedOnToolsVersion = 11.3.1; }; @@ -3410,6 +3510,8 @@ 0A9AC11123E94E2D009E2264 /* leetcode-167 两数之和 II - 输入有序数组 */, 0A9AC0F823E8140B009E2264 /* leetcode-260 只出现一次的数字 III */, 0A2CF10323EBE5EE0054EF33 /* leetcode-999 寻找无序数组中第K大的数 */, + 0ABA931C23EC6C5E003A2F03 /* leetcode-1000 无序数组中找到最大值和最小值 */, + 0ABA933323EC831C003A2F03 /* leetcode-Array */, 0A2EEAE0224A21AA00E5EDB4 /* Graph-Representation */, 0AA26B7E224CCD1A00A29E79 /* 索引堆 */, 0A164AB02398A13D00399922 /* Fibonacci (斐波那契数列实现) */, @@ -3814,6 +3916,22 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 0ABA931923EC6C5E003A2F03 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0ABA932023EC6C5E003A2F03 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0ABA933023EC831C003A2F03 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0ABA933723EC831C003A2F03 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 0AD19FC423E677DF00A0E2EB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4982,6 +5100,50 @@ }; name = Release; }; + 0ABA932123EC6C5E003A2F03 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = CU4XLCPFAU; + ENABLE_HARDENED_RUNTIME = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 0ABA932223EC6C5E003A2F03 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = CU4XLCPFAU; + ENABLE_HARDENED_RUNTIME = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + 0ABA933923EC831C003A2F03 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = CU4XLCPFAU; + ENABLE_HARDENED_RUNTIME = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 0ABA933A23EC831C003A2F03 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = CU4XLCPFAU; + ENABLE_HARDENED_RUNTIME = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; 0AD19FCD23E677DF00A0E2EB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5771,6 +5933,24 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 0ABA932323EC6C5E003A2F03 /* Build configuration list for PBXNativeTarget "leetcode-1000 无序数组中找到最大值和最小值" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0ABA932123EC6C5E003A2F03 /* Debug */, + 0ABA932223EC6C5E003A2F03 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0ABA933823EC831C003A2F03 /* Build configuration list for PBXNativeTarget "leetcode-Array" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0ABA933923EC831C003A2F03 /* Debug */, + 0ABA933A23EC831C003A2F03 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 0AD19FCC23E677DF00A0E2EB /* Build configuration list for PBXNativeTarget "leetcode-107 二叉树的层次遍历 II" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git "a/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/project.xcworkspace/xcuserdata/kevin.xcuserdatad/UserInterfaceState.xcuserstate" "b/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/project.xcworkspace/xcuserdata/kevin.xcuserdatad/UserInterfaceState.xcuserstate" index 3db3aa3..6d2f452 100644 Binary files "a/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/project.xcworkspace/xcuserdata/kevin.xcuserdatad/UserInterfaceState.xcuserstate" and "b/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/project.xcworkspace/xcuserdata/kevin.xcuserdatad/UserInterfaceState.xcuserstate" differ diff --git "a/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/xcuserdata/kevin.xcuserdatad/xcschemes/xcschememanagement.plist" "b/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/xcuserdata/kevin.xcuserdatad/xcschemes/xcschememanagement.plist" index 258479b..c200263 100644 --- "a/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/xcuserdata/kevin.xcuserdatad/xcschemes/xcschememanagement.plist" +++ "b/\347\256\227\346\263\225\346\227\266\347\251\272/\347\256\227\346\263\225\346\227\266\347\251\272.xcodeproj/xcuserdata/kevin.xcuserdatad/xcschemes/xcschememanagement.plist" @@ -7,7 +7,7 @@ BST-二叉搜索树.xcscheme orderHint - 59 + 44 C++.xcscheme @@ -17,7 +17,7 @@ C++.xcscheme_^#shared#^_ orderHint - 55 + 40 Fibonacci (斐波那契数列实现).xcscheme @@ -27,12 +27,12 @@ Fibonacci (斐波那契数列实现).xcscheme_^#shared#^_ orderHint - 62 + 47 Graph-Representation.xcscheme orderHint - 61 + 46 LeetCode-102二叉树的层次遍历.xcscheme @@ -42,7 +42,7 @@ LeetCode-102二叉树的层次遍历.xcscheme_^#shared#^_ orderHint - 42 + 34 leetcode-01两数之和.xcscheme @@ -89,6 +89,11 @@ orderHint 16 + leetcode-1000 无序数组中找到最大值和最小值.xcscheme_^#shared#^_ + + orderHint + 65 + leetcode-100相同的树.xcscheme orderHint @@ -97,57 +102,57 @@ leetcode-100相同的树.xcscheme_^#shared#^_ orderHint - 40 + 32 leetcode-101 对称二叉树.xcscheme_^#shared#^_ orderHint - 41 + 33 leetcode-104 二叉树的深度.xcscheme_^#shared#^_ orderHint - 43 + 35 leetcode-107 二叉树的层次遍历 II.xcscheme_^#shared#^_ orderHint - 47 + 48 leetcode-109 有序链表转换二叉搜索树.xcscheme_^#shared#^_ orderHint - 46 + 58 leetcode-110 平衡二叉树.xcscheme_^#shared#^_ orderHint - 44 + 36 leetcode-125 验证回文串.xcscheme_^#shared#^_ orderHint - 45 + 37 leetcode-131 分割回文串.xcscheme_^#shared#^_ orderHint - 49 + 59 leetcode-136 只出现一次的数字.xcscheme_^#shared#^_ orderHint - 48 + 60 leetcode-137 只出现一次的数字 II.xcscheme_^#shared#^_ orderHint - 50 + 61 leetcode-138 复制带随机指针的链表.xcscheme_^#shared#^_ orderHint - 63 + 62 leetcode-13罗马数字转整数.xcscheme @@ -162,7 +167,7 @@ leetcode-141 环形链表.xcscheme_^#shared#^_ orderHint - 51 + 38 leetcode-14最长公共前缀.xcscheme @@ -182,12 +187,12 @@ leetcode-160 找到两个单链表相交的起始节点.xcscheme_^#shared#^_ orderHint - 52 + 39 leetcode-167 两数之和 II - 输入有序数组.xcscheme_^#shared#^_ orderHint - 53 + 63 leetcode-19 删除链表的倒数第 N 个节点.xcscheme_^#shared#^_ @@ -227,7 +232,7 @@ leetcode-260 只出现一次的数字 III.xcscheme_^#shared#^_ orderHint - 54 + 64 leetcode-26删除排序数组中的重复项.xcscheme @@ -277,7 +282,7 @@ leetcode-53最大子序和.xcscheme_^#shared#^_ orderHint - 28 + 49 leetcode-58最后一个单词的长度.xcscheme @@ -287,12 +292,12 @@ leetcode-58最后一个单词的长度.xcscheme_^#shared#^_ orderHint - 29 + 50 leetcode-61 反转链表.xcscheme_^#shared#^_ orderHint - 30 + 28 leetcode-66加一.xcscheme @@ -302,7 +307,7 @@ leetcode-66加一.xcscheme_^#shared#^_ orderHint - 31 + 51 leetcode-67二进制求和.xcscheme @@ -312,7 +317,7 @@ leetcode-67二进制求和.xcscheme_^#shared#^_ orderHint - 32 + 52 leetcode-70爬楼梯.xcscheme @@ -322,12 +327,12 @@ leetcode-70爬楼梯.xcscheme_^#shared#^_ orderHint - 33 + 53 leetcode-75 颜色分类.xcscheme_^#shared#^_ orderHint - 34 + 29 leetcode-83删除排序链表中的重复元素.xcscheme @@ -337,12 +342,12 @@ leetcode-83删除排序链表中的重复元素.xcscheme_^#shared#^_ orderHint - 35 + 54 leetcode-86 分割链表.xcscheme_^#shared#^_ orderHint - 36 + 30 leetcode-88合并两个有序数组.xcscheme @@ -352,12 +357,12 @@ leetcode-88合并两个有序数组.xcscheme_^#shared#^_ orderHint - 37 + 55 leetcode-92 反转链表 II.xcscheme_^#shared#^_ orderHint - 38 + 31 leetcode-94二叉树的中序遍历.xcscheme @@ -367,12 +372,17 @@ leetcode-94二叉树的中序遍历.xcscheme_^#shared#^_ orderHint - 39 + 56 leetcode-999 寻找无序数组中第K大的数.xcscheme_^#shared#^_ orderHint - 64 + 57 + + leetcode-Array.xcscheme_^#shared#^_ + + orderHint + 66 元素去重.xcscheme @@ -427,7 +437,7 @@ 字符串匹配.xcscheme_^#shared#^_ orderHint - 57 + 42 字符串比较.xcscheme @@ -472,7 +482,7 @@ 无重复字符的最长子串.xcscheme_^#shared#^_ orderHint - 60 + 45 桶排序.xcscheme @@ -487,7 +497,7 @@ 索引堆.xcscheme_^#shared#^_ orderHint - 56 + 41 选择排序.xcscheme @@ -507,7 +517,7 @@ 链表逆序打印.xcscheme_^#shared#^_ orderHint - 58 + 43 SuppressBuildableAutocreation @@ -702,6 +712,11 @@ primary + 0ABA932823EC76BD003A2F03 + + primary + + 0AD19FBC23E6776100A0E2EB primary