diff --git "a/lcof/\351\235\242\350\257\225\351\242\23003. \346\225\260\347\273\204\344\270\255\351\207\215\345\244\215\347\232\204\346\225\260\345\255\227/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23003. \346\225\260\347\273\204\344\270\255\351\207\215\345\244\215\347\232\204\346\225\260\345\255\227/README.md" index 186376f8943a9..2c384815a25e2 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23003. \346\225\260\347\273\204\344\270\255\351\207\215\345\244\215\347\232\204\346\225\260\345\255\227/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23003. \346\225\260\347\273\204\344\270\255\351\207\215\345\244\215\347\232\204\346\225\260\345\255\227/README.md" @@ -120,6 +120,30 @@ func findRepeatNumber(nums []int) int { } ``` +### **C++** + +```cpp +class Solution { +public: + int findRepeatNumber(vector& nums) { + int len = nums.size(); + for (int i = 0; i < len; i++) { + while (i != nums[i]) { + // 这一位的值,不等于这一位的数字 + if (nums[i] == nums[nums[i]]) { + // 如果在交换的过程中,发现了相等的数字,直接返回 + return nums[i]; + } + + swap(nums[i], nums[nums[i]]); + } + } + + return 0; + } +}; +``` + ### **...** ``` diff --git "a/lcof/\351\235\242\350\257\225\351\242\23003. \346\225\260\347\273\204\344\270\255\351\207\215\345\244\215\347\232\204\346\225\260\345\255\227/Solution.cpp" "b/lcof/\351\235\242\350\257\225\351\242\23003. \346\225\260\347\273\204\344\270\255\351\207\215\345\244\215\347\232\204\346\225\260\345\255\227/Solution.cpp" new file mode 100644 index 0000000000000..c61b60a355920 --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23003. \346\225\260\347\273\204\344\270\255\351\207\215\345\244\215\347\232\204\346\225\260\345\255\227/Solution.cpp" @@ -0,0 +1,19 @@ +class Solution { +public: + int findRepeatNumber(vector& nums) { + int len = nums.size(); + for (int i = 0; i < len; i++) { + while (i != nums[i]) { + // 这一位的值,不等于这一位的数字 + if (nums[i] == nums[nums[i]]) { + // 如果在交换的过程中,发现了相等的数字,直接返回 + return nums[i]; + } + + swap(nums[i], nums[nums[i]]); + } + } + + return 0; + } +}; \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" index e0230409bc147..fe310929b2550 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/README.md" @@ -122,6 +122,39 @@ func reversePrint(head *ListNode) []int { } ``` +### **C++** + +```cpp +/** + * Definition for singly-linked list. + * struct ListNode { + * int val; + * ListNode *next; + * ListNode(int x) : val(x), next(NULL) {} + * }; + */ +class Solution { +public: + vector ret; + + void getVal(ListNode* head) { + // 这里可以看成是一个节点的树 + if (head) { + if (head->next) { + getVal(head->next); + } + ret.push_back(head->val); + } + } + + vector reversePrint(ListNode* head) { + getVal(head); + // 返回的是全局的ret信息。在getVal函数中被赋值 + return ret; + } +}; +``` + ### **...** ``` diff --git "a/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.cpp" "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.cpp" new file mode 100644 index 0000000000000..c2b5b53ca5fae --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23006. \344\273\216\345\260\276\345\210\260\345\244\264\346\211\223\345\215\260\351\223\276\350\241\250/Solution.cpp" @@ -0,0 +1,27 @@ +/** + * Definition for singly-linked list. + * struct ListNode { + * int val; + * ListNode *next; + * ListNode(int x) : val(x), next(NULL) {} + * }; + */ + +class Solution { +public: + vector ret; + + void getVal(ListNode* head) { + if (head) { + if (head->next) { + getVal(head->next); + } + ret.push_back(head->val); + } + } + + vector reversePrint(ListNode* head) { + getVal(head); + return ret; + } +}; \ No newline at end of file