![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣算法题
蜗牛C100
这个作者很懒,什么都没留下…
展开
-
leetcode 51. N 皇后
题目描述:n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个不同的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。实例一:输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示,4 皇后问题存在两个不同的解法。示例 2:输入:n.原创 2022-02-06 23:18:17 · 96 阅读 · 0 评论 -
leetcode 42. 接雨水 (C++)
leetcode 42.接雨水 (C++代码解决)给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2022-02-02 21:14:27 · 355 阅读 · 1 评论 -
leetcode 41. 缺失的第一个正数 (C++)
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1:输入:nums = [1,2,0]输出:3示例 2:输入:nums = [3,4,-1,1]输出:2示例 3:输入:nums = [7,8,9,11,12]输出:1提示:1 <= nums.length <= 5 * 105-231 <= nums[i] <= 231 - 1该题目要原创 2022-02-01 21:56:44 · 1149 阅读 · 0 评论 -
leetcode 39. 组合总和
执行用时:4 ms, 在所有 C++ 提交中击败了91.98%的用户内存消耗:10.5 MB, 在所有 C++ 提交中给你一个无重复元素的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的所有不同组合 ,并以列表形式返回。你可以按任意顺序返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 对于给定的输入,保证和为 target 的不同组合数少原创 2022-01-31 22:09:09 · 6678 阅读 · 1 评论 -
leetcode 37. 解数独
使用递归进行填入数字,在每行填完之后的可行结果时进行返回true,如果不满足就返回false代码如下(示例):class Solution {public: void solveSudoku(vector<vector<char>>& board) { vector<vector<int>> box; vector<vector<int>> row; vector&l原创 2022-01-31 16:20:45 · 759 阅读 · 0 评论 -
leetcode 实现strStr()
题目描述实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例 1:输入:haystack = "h原创 2022-01-27 20:00:09 · 110 阅读 · 0 评论 -
leetcode K 个一组翻转链表
代码如下:class Solution {public: ListNode* reverseKGroup(ListNode* head, int k) { ListNode *l1=head; int n=0; while(l1!=NULL)//获取链表长度 { l1=l1->next; n++; } if(n<k || k==1)//链表长原创 2022-01-26 19:53:05 · 208 阅读 · 0 评论 -
leetcode 合并K个升序链表
使用递归,直接搞定,空间使用小class Solution {public: ListNode *l0=new(ListNode); ListNode *l=l0; ListNode* mergeKLists(vector<ListNode*>& lists) { del(lists); // cout<<lists.size()<<endl; if(lists.empty())原创 2022-01-26 00:38:00 · 544 阅读 · 0 评论 -
leetcode 四数之和
“四数之和”这个问题出现之后,相信大家也做了前面的三数之和之类的问题了,也肯定觉得这个继续做“几”数之和没啥意义。索性使用递归做一个n数之和。本代码使用C++编写class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { sort(nums.begin(),nums.end()); //递归调用原创 2022-01-23 23:28:40 · 5797 阅读 · 1 评论 -
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。以下的解法差不多,但是为什么第一个不可以class Solution {public: int removeElement(vector<int>& nums, int val) { if(num原创 2021-03-22 14:58:22 · 671 阅读 · 0 评论