草庐IT

Leetcode6

全部标签

初刷leetcode题目总结 -- 数据结构

魔王的介绍:😶‍🌫️一名双非本科大一小白。魔王的目标:🤯努力赶上周围卷王的脚步。魔王的主页:🔥🔥🔥大魔王.🔥🔥🔥❤️‍🔥大魔王与你分享:“我不是害怕菲奥娜,我只是害怕满身破绽的自己。”文章目录前言一、189.轮转数组思路代码二、面试题17.04.消失的数字思路代码第一种第二种三、27.移除元素思路代码第一种:笨方法第二种:正常解法四、26.删除有序数组中的重复项思路代码五、88.合并两个有序数组思路代码第一种第二种六、20.有效的括号思路代码七、203.移除链表元素思路代码第一种第二种八、206.反转链表思路代码九、876.链表的中间结点思路代码十、链表中倒数第k个结点思路代码十一、21.合并

Leetcode 278. First Bad Version

ProblemYouareaproductmanagerandcurrentlyleadingateamtodevelopanewproduct.Unfortunately,thelatestversionofyourproductfailsthequalitycheck.Sinceeachversionisdevelopedbasedonthepreviousversion,alltheversionsafterabadversionarealsobad.Supposeyouhavenversions[1,2,…,n]andyouwanttofindoutthefirstbadone,whi

leetcode做题笔记137. 只出现一次的数字 II

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次。请你找出并返回那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。思路一:位运算(参考ant大佬的思路)c语言解法intsingleNumber(int*nums,intnumsSize){intresult=0;for(inti=0;i>i)&1;}result+=(count%3)分析:本题与上题相似,即要找出只出现了一次的元素,将每个数想象成32位的二进制,对于每一位的二进制的1和0累加起来必然是3N或者3N+1,为3N代表目标值在这一位没贡献,3N+1代表目标值在

【 LeetCode题解 】203. 移除链表元素

【LeetCode题解】203.移除链表元素题目链接:https://leetcode.cn/problems/remove-linked-list-elements/博客主页链接:DuckBro博客主页关注博主,后期持续更新系列文章***感谢观看,希望对你有所帮助***目录【LeetCode题解】203.移除链表元素🌟题目要求🌟解题思路(动图解析)🧐方案一😁方案二🌟代码示列🌟题目要求🌟解题思路(动图解析)🧐方案一方案1:主要思路遇到val就删除,分为头删和中间删除两种情况。当val在链表中间时,遇到val就删除链表中和val相同的节点,并链接val后面的节点。当val在链表开头时,或者连续的

Leetcode: 645.错误的集合 题解【超详细】

题目集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。给定一个数组 nums 代表了集合 S 发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。难道:简单题目链接:645.错误的集合示例1:输入:nums=[1,2,2,4]输出:[2,3]示例2:输入:nums=[1,1]输出:[1,2]提示:21题目解析根据题目我们可以知道集合s[1,n]  里面是有一个元素是重复的,有一个元素是缺失的,题目是要求我们返回数组的(即一个重复的元素,一个缺

【Leetcode每日一题】35.搜素插入位置|二分查找数组下标

🌱博主简介:大一计科生,努力学习Java中!热爱写博客~预备程序媛📜所属专栏:LeetCode每日一题–进击大厂✈往期博文回顾:【JavaSE】保姆级教程|1万字+10张图学会类与对象–建议收藏🕵️‍♂️近期目标:成为千粉小博主。🌺“再牛的程序员也是从小白开始,既然开始了,就全身心投入去学习技术”力扣每日刷题--35题目描述解题思路代码实现--Java总结&易错题目描述35.搜索插入位置解题思路题型:数组、二分查找(变式)—寻找第1个大于等于目标值的元素关键:二分查找的关键点就是—两边夹(高数上又叫作夹逼准则)。left和right确定答案所在区间,通过mid(把区间划分为[left,mid]

图解LeetCode——剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

一、题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。二、示例2.1>示例:【输入】nums=[1,2,3,4]【输出】[1,3,2,4]【注】[3,1,2,4]也是正确的答案之一提示:050000010000三、解题思路根据题目描述,我们需要将原整数数组中所有的奇数放到数组的前半部分,所有的偶数放到数组的后半部分,那么本题就是一道比较标准的双指针算法问题。此时我们就需要创建前指针head和后指针tail,head指针会一直向后遍历,直到遍历到偶数(即:与2取余等于0);然后再将tail指针一直向前移动,直到遍历到奇数(即:与2

LeetCode练习day5-滑动窗口

滑动窗口(SlidingWindow)滑动窗口指的是这样一类问题的求解方法,在数组上通过双指针同向移动而解决的一类问题。其实这样的问题我们可以不必为它们专门命名一个名字,它们的解法其实是很自然的。使用滑动窗口解决的问题通常是暴力解法的优化,掌握这一类问题最好的办法就是练习,然后思考清楚为什么可以使用滑动窗口。滑动:窗口可以按照一定的方向移动。窗口:窗口大小可以固定,也可以不固定,此时可以向外或者向内,扩容或者缩小窗口直至满足条件。介绍滑动窗口是一种解决问题的思路和方法,通常用来解决一些连续问题。比如LeetCode的209.长度最小的子数组。更多滑动窗口题目见下方题目列表。常见套路滑动窗口主要

LeetCode刷题之树

关于二叉树的题,几乎都会用到递归的解法来做。树用到节点TreeNode类:publicclassTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(intx){val=x;}}104.二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/920/157返回它的最大深度3。题解:classSolution{/***节点为空时说明高度为0,所以返回0;节点不为空时则分别求左右子树的高度的最大值,