4 sunshine_lyn

尚未进行身份认证

我要认证

欢迎访问个人博客: https://www.elainelv.com/

等级
TA的排名 1w+

Leetcode有关滑动窗口的题目

代码是用C写的。239. 滑动窗口最大值使用单调双端队列记录窗口内可能的最大值。遍历数组一次,由于是找窗口内的最大值,在窗口移动的过程中,需要把窗口内可能成为接下来窗口最大值的数字先记录在队列中。入窗口:每次有一个数字滑入窗口的时候,这个数字必定需要记录在窗口内,因为以这个数字为起始位置的窗口是未知的,因此这个数字可能成为窗口的最大值,当这个数字进入窗口后,我们需要对队列里候选的最大值进行判断,如果发现先进队列的数字比当前数字要小,那么在当前数字成为窗口内最大值候选的时候,比它小的数字就不可能成为最

2020-06-28 14:27:21

LeetCode 跳跃游戏I&II(贪心算法)

55. 跳跃游戏代码(C语言):int max(int a,int b){ return a>b?a:b;}bool canJump(int* nums, int numsSize){ int farthest=0; for(int i=0;i<numsSize-1;i++){ farthest=max(farthest,i+num...

2020-03-19 15:39:52

LeetCode只出现一次的数字(位运算法)

136. 只出现一次的数字a^a=0; 0^a=aint singleNumber(int* nums, int numsSize){ int i,ans=0; for(i=0;i<numsSize;i++){ ans^=nums[i];//异或 } return ans;}260. 只出现一次的数字 III题中只有两个数出...

2020-03-17 18:18:18

数组中的重复数字和消失数字求解模板(下标哈希法)

由于数组中存的为1~n,都为正数,我们可以用正负号来表示下标为 i 的数在数组中是否出现。搜索遍历整个数组时,如果已经为负数,那么之前一定出现过一次,这个数就是我们要找的重复的数字。最后哪些值为正数的下标i所对应的数字i+1就是在数组中没有出现过的数字。切记:index=abs(nums[i])-1;取下标的时候一定要加绝对值!!原来的数可能已经添加了负号442. 数组中重复的数据...

2020-03-17 16:12:12

LeetCode比赛(持续更新…)

周赛:比赛时间为每周周日上午10:30-12:00LeetCode-第177场周赛LeetCode 第179场周赛双周赛:比赛时间为隔周周六LeetCode第 20 场双周赛

2020-03-16 21:23:03

LeetCode面试题07. 重建二叉树

面试题07. 重建二叉树解题思路:通过前序遍历找根节点,找到根节点后,再中序遍历中找当前根节点,找到后,左边的节点是当前根节点的左子树中的节点,右边的节点是当前根节点右子树的节点。递归建树。例如:代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * ...

2020-03-16 10:39:11

LeetCode 第179场周赛

5352. 生成每种字符都是奇数个的字符串char * generateTheString(int n){ char *s=(char*)malloc(sizeof(char)*(n+1)); for(int i=0;i<n-1;i++) s[i]='a'; if(n%2==0) s[n-1]='b'; else ...

2020-03-14 20:20:18

安装VMware Tools选项显示灰色的正确解决办法

一、VMware Tools简介  VMware Tools 中包含一系列服务和模块,可在 VMware 产品中实现多种功能,从而使用户能够更好地管理客户机操作系统,以及与客户机操作系统进行无缝交互。  VMware Tools 生命周期管理为 VMware Tools 的安装和升级提供了一种简单而可扩展的方式。它包含多项功能增强和与驱动程序相关的增强,并支持新的客户机操作系统。...

2020-03-14 14:51:54

动态规划求子序列和子串问题

LeetCode子序列问题:300. 最长上升子序列;673. 最长递增子序列的个数;1143. 最长公共子序列;516. 最长回文子序列LeetCode子串问题:5. 最长回文子串;14. 最长公共前缀300. 最长上升子序列int max(int a,int b){ return a>b?a:b;}int lengthOfLIS(int* nums, int ...

2020-03-14 11:15:39

LeetCode50. Pow(x, n)

50. Pow(x, n)【思路】首先想到暴力法,直接算n次与x相乘,结果超时了……这一题很容易想到利用快速幂计算。我们讨论n的奇偶性,如果n为偶数,那么X^n=(X^2)^(n/2);如果n为奇数,那么X^n=(X^2)^((n-1)/2) *X,我们将这里的红色X保存下来,最后再乘上这些保存下来的X。当然这一题是也可以用递归方式来实现的。递归函数如下:double fas...

2020-03-10 10:57:21

LeetCode322. 零钱兑换

322. 零钱兑换#include<stdlib.h>#include<algorithm.h>#define INF 0x3f3f3f3fint min(int a,int b){ return a<b?a:b;}int coinChange(int* coins, int coinsSize, int amount){ int i,...

2020-03-08 10:41:05

LeetCode面试题52. 两个链表的第一个公共节点

面试题52. 两个链表的第一个公共节点【思路】双指针依次遍历两个链表,两者遍历长度一定是一样的。tmp1指向headA,tmp2指向headB,当遍历到链表末尾时,指向另一个链表头部继续遍历,这样如果存在公共节点,两者一定会相遇并一起走完相同的节点。相遇时的节点即为公共节点。/** * Definition for singly-linked list. * struct ListN...

2020-03-05 12:40:10

LeetCode1103. 分糖果 II

【思路】糖果分发符合等差数列,计算时分为两步:1.找出可以完整拿到糖果数的轮回数,根据轮回数计算每个人在完整轮回可以获得的糖果数。2.最后一次分发不完整,按照手中糖果一次分发/** * Note: The returned array must be malloced, assume caller calls free(). */int* distributeCandies(int...

2020-03-05 10:33:14

LeetCode994. 腐烂的橘子

在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。示例 1:输入:[[2,1,1],[1,1,0],[0,1,1]]输出:4示例 2:输入:...

2020-03-04 14:23:45

LeetCode 第178场周赛

1.有多少小于当前数字的数字/** * Note: The returned array must be malloced, assume caller calls free(). */int* smallerNumbersThanCurrent(int* nums, int numsSize, int* returnSize){ int i,j; int *tmp=(...

2020-03-02 20:55:06

LeetCode N皇后(回溯法C语言实现)

51. N皇后【思路】不管是八皇后还是N皇后,思想都一样,我们从第一行开始每一行放一个皇后,再放之前,判断是否与已经放置的皇后冲突(不能放同一行同一列同一对角线)因为每次在一行只放置一个皇后,因此,判断冲突的时候我们不需要在判断行了。如果不发生冲突,那么当前列可放,紧接着遍历下一行。直到所有的行都可以放一个皇后。我们用一维数组flag标记每一行皇后所在的列。例如flag[3]=7表示第3行...

2020-03-02 17:08:35

LeetCode135. 分发糖果

老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例 1:输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 ...

2020-02-27 11:09:32

LeetCode130. 被围绕的区域

给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 'O' 都...

2020-02-27 10:11:00

LeetCode第 20 场双周赛

1.根据数字二进制下 1 的数目排序/** * Note: The returned array must be malloced, assume caller calls free(). */ int cal(int num){ int sum=0; while(num){ sum+=num%2; num/=2; }...

2020-02-26 15:42:59

LeetCode 第177场周赛

1.日期之间隔几天【思路】计算两个日期和1970-1-1之间相隔的天数,然后相减即可。需要注意闰年闰月的判断。int getday(int *d1){ int month[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int day1=0,i; for(i=1970;i<d1[0];i++){ if(...

2020-02-26 13:33:17

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。