草庐IT

LeetCode_day

全部标签

每日一题——LeetCode1002

方法一个人方法:将words里的字符串的每个字符出现的次数都转为键值对的形式:循环求两两键值对数组的交集:最后的交集就是重复出现的字符和次数,把键值对转回字符数组形式即可思路对了,但是太复杂了,时间效率很低varcommonChars=function(words){vararr=[],newWords=[],union=[]for(varitemofwords){for(varcharofitem){if(!arr[char]){arr[char]=1}else{arr[char]++}}newWords.push(arr)arr=[]}arr=newWords[0]for(vari=1;i

个人python学习-Day10-飞机大战

一、需求描述存在四个对象:我方飞机,敌方飞机,我方子弹,敌方子弹存在功能:我方飞机可以移动【根据按键控制】,敌方飞机随机移动,双方飞机都可以发射子弹,背景音乐添加,这个项目主要是复习之前学习的内容,其代码效果并不是特别好,步骤:创建一个窗口创建一个我方飞机,根据方向键移动给我方飞机添加发射子弹功能,【空格键发射】创建一个敌方飞机敌人飞机可以随机移动敌方飞机自动发射子弹二、搭建界面和键盘检测1.pygame介绍Pygame是一个利用SDL库的写的游戏库,SDL呢,全名SimpleDirectMediaLayer,是一位叫做SamLantinga的大牛写的SDL是用C写的,不过它也可以使用C++进

前缀和+单调双队列+贪心:LeetCode2945:找到最大非递减数组的长度

本文涉及知识点C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例包括课程视频单调双队列贪心题目给你一个下标从0开始的整数数组nums。你可以执行任意次操作。每次操作中,你需要选择一个子数组,并将这个子数组用它所包含元素的和替换。比方说,给定数组是[1,3,5,6],你可以选择子数组[3,5],用子数组的和8替换掉子数组,然后数组会变为[1,8,6]。请你返回执行任意次操作以后,可以得到的最长非递减数组的长度。子数组指的是一个数组中一段连续非空的元素序列。示例1:输入:nums=[5,2,2]输出:1解释:这个长度为3的数组不是非递减的。我们有2种方案使数组长度为2。第一种,选择子数组

算法训练day49|动态规划part10

121.买卖股票的最佳时机参考文章:代码随想录贪心因为股票就买卖一次,那么贪心的想法很自然就是取最左最小值,取最右最大值,那么得到的差值就是最大利润。本次重点学习动态规划方法1.dp数组(dptable)以及下标的含义dp[i][0]表示第i天持有股票所得最多现金,一开始现金为负数,所以第一天就持有股票的话,就是为负dp[i][1]表示第i天不持有股票所得最多现金如果按照买入,卖出来分别状态,那什么都不干的状态并不能涵盖所以应该按照持有,和不持有来区分持有包含今天买入和之前买入但是这几天一直没变动不持有包含今天卖出,和之前卖出之后没变动这两种状态能够涵盖所有情况2.递推公式如果第i天持有股票即

HarmonyOS自学-Day2(ArkTS生命周期)

目录文章声明⭐⭐⭐让我们开始今天的学习吧!生命周期组件生命周期谁可以调用组件生命周期?组件生命周期有哪些?页面生命周期谁可以调用页面生命周期?页面生命周期有哪些?生命周期执行顺序(非常重要)自定义组件的创建和渲染流程(非常重要)自定义组件的重新渲染自定义组件的销毁文章声明⭐⭐⭐该文章为我(有编程语言基础,非编程小白)的HarmonyOS自学笔记,此类文章笔记我会默认大家都学过前端相关的知识知识来源为HarmonyOS官方文档,归纳为自己的语言与理解记录于此不出意外的话,我大抵会持续更新想要了解前端开发(技术栈大致有:Vue2/3、微信小程序、uniapp、HarmonyOS、NodeJS、Ty

【Leetcode】重排链表、旋转链表、反转链表||

目录💡重排链表题目描述方法一:方法二:💡旋转链表题目描述方法:💡反转链表||题目描述方法:💡总结💡重排链表题目描述给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 →L1 →…→Ln-1 →Ln 请将其重新排列后变为:L0 → Ln → L1 → Ln-1 → L2 → Ln-2 →…不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。提示:链表的长度范围为 [1,5*104]1方法一:将链表的每一个节点存在数组里,然后用下标访问的方式,交叉连接。/***Definitionforsingly-linkedlist.*structListNode{*intval;*

【LeetCode】2695. 包装数组

包装数组题目题解题目创建一个名为ArrayWrapper的类,它在其构造函数中接受一个整数数组作为参数。该类应具有以下两个特性:当使用+运算符将两个该类的实例相加时,结果值为两个数组中所有元素的总和当在实例上调用String()函数时,它将返回一个由逗号分隔的括在方括号中的字符串。例如,[1,2,3]示例1:输入:nums=[[1,2],[3,4]],operation="Add"输出:10解释:constobj1=newArrayWrapper([1,2]);constobj2=newArrayWrapper([3,4]);obj1+obj2;//10示例2:输入:nums=[[23,98,

反转链表、链表的中间结点、合并两个有序链表(leetcode 一题多解)

 一、反转链表给你单链表的头节点head,请你反转链表,并返回反转后的链表。力扣(LeetCode)官网-全球极客挚爱的技术成长平台思路一:翻转单链表指针方向这里解释一下三个指针的作用:n1:记录上一个节点,如果是第一个就指向空n2:记录此节点的位置n3:记录下一个节点的位置,让翻转后能找到下一个节点,防止丢失指针的地址/**Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*reverseList(structListNode*head){if(head

php - 如何在 PHP 中将 "first day of the week"设置为星期四

我想将一周的第一天设置为星期四(不是星期日或星期一),因为这是公司的截止日期。我已经有一个代码来确定日期的当前周数,但它从星期日或星期一开始。如何根据我的喜好修改这些?functionfindweek($date){$monthstart=date("N",strtotime(date("n/l/Y",strtotime($date))));$newdate=(date("j",strtotime($date))+$monthstart)/7;$ddate=floor($newdate);if($ddate!=$date){$ddate++;}return$ddate;}

【Leetcode】相同的树、对称二叉树、另一颗树的子树

目录💡相同的树题目描述思路:代码:💡对称二叉树题目描述思路:代码:💡另一棵树的子树题目描述思路:代码:💡总结 💡相同的树题目描述给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。思路:这个题目实际上可以分解为许多个相同的子问题,就是检查每一个子树是否相同,然后便可以利用递归的思想来解答。代码:boolisSameTree(structTreeNode*p,structTreeNode*q){if(p==NULL&&q==NULL)returntrue;if(p==NULL&&q!=NULL)returnf