摘要: 暴力枚举即可,注意特判k为0的情况。 class Solution { public: vector<int> divingBoard(int shorter, int longer, int k) { if(k == 0) { return {}; } vector<int> res; set<i 阅读全文
posted @ 2020-07-08 00:32 machine_gun_lin 阅读(78) 评论(0) 推荐(0)
摘要: 判断当前节点currentNode的值和它的next指针所指向的节点的值是否相等,如果相等,就一直向后移动next指针直到遇到 next指针所指节点的值和currentNode的值不相等,这时将currentNode的next指针指向这个不相等的节点即可。 当currentNode和currentN 阅读全文
posted @ 2020-07-06 17:32 machine_gun_lin 阅读(89) 评论(0) 推荐(0)
摘要: 题意是要删除一个排序链表里所有重复出现的数字,链表里留下的数字都是只出现一次的数字。 思路:用两个指针currentNode和nextNode扫描一遍有序链表,最开始初始化currentNode为链表的附加头节点dummy, nextNode为currentNode的下一个节点,然后不断判断next 阅读全文
posted @ 2020-07-06 11:57 machine_gun_lin 阅读(125) 评论(0) 推荐(0)
摘要: 方法一 先排序后二分 要判断数组里是否存在target,可以先对数组排序,然后直接二分查找。 这样时间复杂度是O(nlogn)。 class Solution { public: bool search(vector<int>& nums, int target) { sort(nums.begin 阅读全文
posted @ 2020-07-06 11:10 machine_gun_lin 阅读(118) 评论(0) 推荐(0)
摘要: 这题和LeetCode第51题做法一样,只不过不是记录具体方案,而是个数。分析见第51题。 代码如下: class Solution { int res = 0; int n; vector<string> path; vector<bool> cols, diagram, anti_diagram 阅读全文
posted @ 2020-07-05 23:40 machine_gun_lin 阅读(77) 评论(0) 推荐(0)
摘要: 题意是给定一个N × N大小的棋盘,求不同的N皇后方案的个数。N皇后的方案指,N个皇后放在棋盘上,互相不能攻击到。 国际象棋里,皇后可以横竖斜走若干步,所以一个方案是合法的,必须满足任意一个皇后所在的行、列、对角线、斜对角线都没有其他皇后。 我们要求的就是这样的方案的个数。 由于每行只能放一个皇后, 阅读全文
posted @ 2020-07-05 23:16 machine_gun_lin 阅读(153) 评论(0) 推荐(0)
摘要: 题意是给定一个已排序数组,我们需要原地修改数组,使得相同元素最多留下2个,并且返回新的数组的大小。 这题还是双指针做法,最开始左右指针都在0位置,左指针表示新的已排序数组的末尾元素位置, 右指针从左向右遍历逐个判断元素是否可以加入“新数组”中。 由于相同元素最多只能留两个,且数组是已排序的,所以对于 阅读全文
posted @ 2020-07-05 02:32 machine_gun_lin 阅读(98) 评论(0) 推荐(0)
摘要: 又是一道DFS回溯,枚举二维字符数组的所有字符作为起点,判断以这个字符作为起点DFS是否能得到word,可以就返回true, 如果所有起点都不行就返回false。 DFS函数就按照方向进行搜索,上下左右是个方向分别去搜,返回的情况有: 1. 某方向下一个字符和word的下一个字符不相等,回溯,返回f 阅读全文
posted @ 2020-07-05 02:11 machine_gun_lin 阅读(113) 评论(0) 推荐(0)
摘要: 方法一(DFS回溯) 求出所有可能的子集,就是要遍历一遍DFS递归树,把所有子集全都压入结果数组中。 class Solution { vector<vector<int>> res; vector<int> onePath; //onePath是递归树的一条路径(一个子集) public: vec 阅读全文
posted @ 2020-07-05 01:06 machine_gun_lin 阅读(105) 评论(0) 推荐(0)
摘要: DFS回溯,从左至右选数,加入一个一维数组oneCombination中,当oneCombination的大小等于k,表示已经选了k个数, 将oneCombination压入结果数组res中。 DFS的函数签名可以写为void DFS(int n, int k, int startPos, vect 阅读全文
posted @ 2020-07-05 00:02 machine_gun_lin 阅读(78) 评论(0) 推荐(0)