【Leetcode 076. 最小覆盖子串 双指针】教程文章相关的互联网学习教程文章

LeetCode 215 数组中第K个最大元素【代码】

在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。知识点:java的优先队列(PriorityQueue),最小堆 /**PriorityQueue,一个基于优先级堆的无界优先级队列。实际上是一个堆(不指定Comparator时默认为最小堆),可以通过传入自定义的Comparator函数来实现储存不同数据类型的二叉堆。 */ PriorityQueue<Integer> minHeap = new PriorityQueue<>(); // 最小堆,...

leetcode24 Swap Nodes in Pairs(递归)【代码】

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. class Solution {public ListNode swapPairs(ListNode head) {if(head==null||head.next==null) return head;ListNode next=head.next;head.next=swapPairs(next.next);next.next=head;return next;} }/*** Definition for singly-linked list.* publ...

leetcode 116 填充每个节点的下一个右侧节点指针【代码】【图】

/* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node* next;Node() : val(0), left(NULL), right(NULL), next(NULL) {}Node(int _val) : val(_val), left(NULL), right(NULL), next(NULL) {}Node(int _val, Node* _left, Node* _right, Node* _next): val(_val), left(_left), right(_right), next(_next) {} }; */class Solution { public:Node* connect(Node* root) {if(!root){return 0;}No...

【LeetCode每日一题】组合总数【代码】

组合总数 1、题目描述 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围示例 1: 输入:nums = [1,2,3], target = 4输出:7解释:所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。示例 2: 输入:nums = [9], target = 3 输出:02、算法思想 核...

SQL练习——LeetCode解题和总结(2)【代码】【图】

602. Friend Requests II: Who Has the Most Friends[M] 一、表信息 In social network like Facebook or Twitter, people send friend requests and accept others requests as well.table:request_accepted 二、题目信息 找出拥有好友数最多的用户编号及其拥有的好友数。所有的请求默认都被处理了。 注意:只有一个用户拥有最多的好友数 好友邀请只能被接受一次,因此要去除重复值 For the sample data above, the result is:三...

LeetCode2021.3.17-各位相加【代码】

递归的简单应用,之后补上好点的代码。 # 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 # 示例: # 输入: 38 # 输出: 2 # 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于2 是一位数,所以返回 2。 class Solution(object):def addDigits(self, num):""":type num: int:rtype: int"""count = sum([int(x) for x in list(str(num))])if count >= 10:return Solution.addDigits(self, count)else:retu...

leetcode 29. 两数相除【代码】【图】

给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。 整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2 示例 1: 输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.33333..) = truncate(3) = 3示例 2: 输入: dividend = 7, divisor = -3输出: -2解释: 7/-3 ...

Leetcode刷题记录(二)2021.3.29 堆

Leetcode刷题记录(二)2021.3.29 堆 Java中PriorityQueue的用法 PriorityQueue<Integer> pq = new PriorityQueue<>(new Comparator<Integer>(){ public int compare(Integer a,Integer b){ return a-b;//a是刚插入该优先队列的数值,如果return的数小于0,则上升,return的数大于0则下降 //当a-b<0时,a上升,由此可知该优先队列是最小堆}}); Map<Integer,Integer> map = new HashMap();map.put(key,value);map.get(key);map....

Leetcode 202: Happy Number【代码】

问题描述: Write an algorithm to determine if a number n is happy. A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits. Repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are...

leetcode--database

ps:limit 1,1 第一个1是表示第二行,第二个1表示从第二行开始往后输出几行。limit 1,1表示只输出第二行。 leetcode--database标签:本文系统来源:http://www.cnblogs.com/lorryrui/p/5671411.html

LeetCode 456. 132 模式【代码】

原题 LeetCode 456. 132 模式 代码1 枚举“3” c++ class Solution { public:bool find132pattern(vector<int>& nums) {bool flag=0;int min=1000000000;for(int i=0;i<nums.size()-1;i++){for(int j=i+1;j<nums.size();j++){if(nums[j]>min && nums[j]<nums[i]) flag=1;}if(nums[i]<min) min=nums[i];}return flag;} };

LeetCode笔记:Biweekly Contest 49 比赛记录【代码】

LeetCode笔记:Biweekly Contest 49 0. 赛后总结1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 1. 解题思路2. 代码实现3. 算法优化 0. 赛后总结 表示人果然来是老了,中午和同学聚餐,跑去吃日料自助,兴致所至畅饮3大杯梅酒,然后直接就给跪了,当时没啥反应,吃完回来之后发现头晕脑涨,一觉睡到晚上快8点,回去之后还是晕乎乎的,饭都不怎么吃得下,硬塞了...

Leetcode 472~478题【代码】

第四百七十二题: class Solution { public:unordered_set<string> hash;bool check(string& word) {int n = word.size();vector<int> f(n + 1, INT_MIN);f[0] = 0;for (int i = 0; i <= n; i ++ ) {if (f[i] < 0) continue;for (int j = n - i; j; j -- ) {if (hash.count(word.substr(i, j))) {f[i + j] = max(f[i + j], f[i] + 1);if (f[n] > 1) return true;}}}return false;}vector<string> findAllConcatenatedWordsInADict(...

leetcode每日一题 2021/4/3 1143. 最长公共子序列【代码】【图】

题目: 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。 两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。 示例 1: 输...

[每日一题] leetcode 403. 青蛙过河【代码】

因为数据太大,但数据量少,因此可以用map先建立映射关系 再用二维set,其中set[i]表示第i个石块所能跳的距离数组 二维vector会超时,set去重就可以了 然后遍历每个石块,并求出其所能到达石块 所能跳的距离 最后判断第n - 1个石块是否有能跳的步数即可class Solution { public:set<int> V[2020];map<int, int> M;bool canCross(vector<int>& stones) {int n = stones.size();int cnt = 0;for(int i = 0; i < n; i++)M[stones[i]] ...