Tag: C++编程练习题

C++编程练习题: 找出数组中所有重复的元素

题意, 有一个N大小的数组, 数组里的数字在1到N之间, 有些数字出现2次, 有些数字出现1次. 请找出所有出现2次的数字. 要求时间复杂度是O(N) 空间复杂度是 O(1). 如果不考虑空间复杂度, 那么我们可以开一个O(n) 的哈希表来记录数字是否已经出现过了, 在C++里我们可以用 unordered_set 集合来实现 O(1) 的查找和插入. class Solution { public: vector<int> findDuplicates(vector<int>& nums) { vector<int> r; unordered_set<int> hash; …

C++编程练习题: 找出字符串的所有大小小组合

题意: 给定一个字符串, 输出所有字符大小写都可以组成的字符串. 如: “ab1” 能成生 DFS 深度优先 – 递归 我们可以从字符串的开头递归的把当前字符给添加到最终的字符串中, 当当前字符是字母的时候, 就有两种可能了. 当到达字符串尾部的时候我们把当前字符串添加到结果数组中即可. class Solution { public: vector<string> letterCasePermutation(string S) { search("", S, 0, S.length() - 1); return …