随笔分类 -  LeetCode / LeetCode题解

熟悉算法
摘要:给你一个 m 行 n 列的二维网格 grid 和一个整数 k,你需要将 grid 迁移 k 次 ####1. 直接映射 class Solution { public: vector<vector<int>> shiftGrid(vector<vector<int>>& grid, int k) { 阅读全文
posted @ 2022-07-27 17:42 失控D大白兔
摘要:给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素 ####1. 模拟操作 按照对角线扫描的顺序,首先要清楚得遍历m+n-1趟 对于对角线移动操作,往上扫描时横坐标增,纵坐标减,往下扫描时,横坐标减,纵坐标增 每扫描完一趟,横纵坐标有一个变化 向上 阅读全文
posted @ 2022-07-27 17:22 失控D大白兔
摘要:####1. 深度优先 class Solution { public: int countNodes(TreeNode* root) { if(!root) return 0; return 1+countNodes(root->left)+countNodes(root->right); } } 阅读全文
posted @ 2022-07-25 23:15 失控D大白兔
摘要:####1. 二叉树的层平均值 class Solution { public: vector<double> averageOfLevels(TreeNode* root) { auto averages = vector<double>(); auto q = queue<TreeNode*>( 阅读全文
posted @ 2022-07-25 21:27 失控D大白兔
摘要:####1. 树中是否存在根节点到叶子节点的路径 class Solution { public: bool hasPathSum(TreeNode *root, int sum) { if (root == nullptr) { return false; } if (root->left == 阅读全文
posted @ 2022-07-25 21:19 失控D大白兔
摘要:####1. 合并两个有序链表 class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* preHead = new ListNode(-1); //一定要使用头指针并复制一个副本 阅读全文
posted @ 2022-07-25 17:29 失控D大白兔
摘要:####1. 反转指定区间链表 先记录反转区域的前驱节点 之后再将反转区域节点按头插法插到该前驱节点 最后再连接一下反转区域后面的节点 class Solution { public: ListNode* reverseBetween(ListNode* head, int left, int ri 阅读全文
posted @ 2022-07-25 14:57 失控D大白兔
摘要:####1. 根据身高重建队列 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序) 每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好有 ki 个身高大于或等于 hi 的人 class Solution { pub 阅读全文
posted @ 2022-07-23 06:22 失控D大白兔
摘要:一个整数区间 [a, b] ( a < b ) 代表着从 a 到 b 的所有连续整数,包括 a 和 b 给你一组整数区间intervals,请找到一个最小的集合 S,使得 S 里的元素与区间intervals中的每一个整数区间都至少有2个元素相交 输出这个最小集合S的大小 ####1. 交集大小至少 阅读全文
posted @ 2022-07-22 20:37 失控D大白兔
摘要:设计一个包含一些单词的特殊词典,并能够通过前缀和后缀来检索单词 ####1. 暴力哈希 实现存储所有可能前后缀组合对应最大下标 class WordFilter { private: unordered_map<string, int> dict;//记录所有前后缀组合对应最大下标 public: 阅读全文
posted @ 2022-07-14 00:58 失控D大白兔
摘要:给定一个严格递增的正整数数组形成序列 arr ,找到 arr 中最长的斐波那契式的子序列的长度。如果一个不存在,返回0 ####1. 暴力法 先用哈希表记录,再二重循环遍历转移,会存在重复遍历 class Solution { public: int lenLongestFibSubseq(vect 阅读全文
posted @ 2022-07-09 02:04 失控D大白兔
摘要:现在,给定一个由许多词根组成的词典 dictionary 和一个用空格分隔单词形成的句子 sentence。你需要将句子中的所有继承词用词根替换掉。如果继承词有许多可以形成它的词根,则用最短的词根替换它。 输入:dictionary = ["cat","bat","rat"], sentence = 阅读全文
posted @ 2022-07-07 16:42 失控D大白兔
摘要:给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 经典子数组题目,使用动态规划,这里需要注意状态的转移,一般来说, 子数组题目状态转移在于把当前元素加入前面的连续子数组形成新的连续子数组 或者本身作为新的子数组两种选择, 阅读全文
posted @ 2022-07-07 16:32 失控D大白兔
摘要:给定一个经过编码的字符串,返回它解码后的字符串 输入:s = "3[a2[c]]" 输出:"accaccacc" ####字符串栈和数字栈 对于这种具有优先级的操作,使用栈来进行匹配 class Solution { public: string decodeString(string s) { s 阅读全文
posted @ 2022-07-07 15:36 失控D大白兔
摘要:给你一个只包含正整数的非空数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等 ###1. 回溯法(超时) class Solution { public: bool canPartition(vector<int>& nums) { //其实就是找一个集合值为特定值 阅读全文
posted @ 2022-07-06 23:49 失控D大白兔
摘要:给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 请你找出符合题意的最短 子数组,并输出它的长度 ###1. 排序后比较 先排序,再分别找第一个不在位的的元素,做差 class Solution { public: int fi 阅读全文
posted @ 2022-07-06 22:08 失控D大白兔 阅读(62) 评论(0) 推荐(0)
摘要:###一. 特征评价 #####1. 互信息 from sklearn.feature_selection import mutual_info_regression import matplotlib.pyplot as plt def make_mi_scores(X, y): X = X.co 阅读全文
posted @ 2022-07-06 17:13 失控D大白兔
摘要:nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。 给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 nums2 的子集。 对于每个 0 <= i < nums1.length 阅读全文
posted @ 2022-07-03 03:46 失控D大白兔
摘要:汽车从起点出发驶向目的地,该目的地位于出发位置东面 target 英里处。 沿途有加油站,每个 station[i] 代表一个加油站,它位于出发位置东面 station[i][0] 英里处,并且有 station[i][1] 升汽油。 假设汽车油箱的容量是无限的,其中最初有 startFuel 升燃 阅读全文
posted @ 2022-07-03 02:50 失控D大白兔
摘要:给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被舍去 。 ###1. 暴力法 class Solution { public: int mySqrt(int x) { for(int i=1;i<=x;i++){ int val = 阅读全文
posted @ 2022-06-29 17:05 失控D大白兔