草庐IT

力扣——《数据结构·入门篇》刷题笔记

第一天-数组  1️⃣存在重复元素  题目:给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。  样例:  思路:本题需要在数组中判断是否存在不同元素,使用Java语言编写时,容易想到使用HashSet来帮助解决  概念:HashSet类,是存在于java.util包中的类。同时也被称为集合,该容器中只能存储不重复的对象。对于HashSet而言,它是基于HashMap实现的,底层采用HashMap来保存元素。该方法如果添加的是在HashSet中不存在的,则返回true;如果添加的元素已经存在,返回false。其原

力扣——《数据结构·入门篇》刷题笔记

第一天-数组  1️⃣存在重复元素  题目:给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。  样例:  思路:本题需要在数组中判断是否存在不同元素,使用Java语言编写时,容易想到使用HashSet来帮助解决  概念:HashSet类,是存在于java.util包中的类。同时也被称为集合,该容器中只能存储不重复的对象。对于HashSet而言,它是基于HashMap实现的,底层采用HashMap来保存元素。该方法如果添加的是在HashSet中不存在的,则返回true;如果添加的元素已经存在,返回false。其原

力扣第335场周赛补题题解

目录1.递枕头2.二叉树中的第K大层和3.分割数组使乘积互质4.获得分数的方法数1.递枕头classSolution{public:intpassThePillow(intn,inttime){intmor=time%(2*(n-1));if(mor>=n-1){returnn-(mor-(n-1));}else{returnmor+1;}}};总结:按题意模拟即可2.二叉树中的第K大层和classSolution{public:longlongcnt[100010];intmaxpos=0;voiddfs(TreeNode*root,intpos){if(root==NULL){return

力扣第335场周赛补题题解

目录1.递枕头2.二叉树中的第K大层和3.分割数组使乘积互质4.获得分数的方法数1.递枕头classSolution{public:intpassThePillow(intn,inttime){intmor=time%(2*(n-1));if(mor>=n-1){returnn-(mor-(n-1));}else{returnmor+1;}}};总结:按题意模拟即可2.二叉树中的第K大层和classSolution{public:longlongcnt[100010];intmaxpos=0;voiddfs(TreeNode*root,intpos){if(root==NULL){return

力扣55. 跳跃游戏

55.跳跃游戏55.跳跃游戏难度:中等给定一个非负整数数组 nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。** **示例 1:输入:nums=[2,3,1,1,4]输出:true解释:可以先跳1步,从下标0到达下标1,然后再从下标1跳3步到达最后一个下标。示例 2:输入:nums=[3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为3的位置。但该下标的最大跳跃长度是0,所以永远不可能到达最后一个下标。分析:用贪心法,遍历数组每个元素,记录从当前下标和对应的元素,确定能够到达的最大距离,若大于当前最大距离则

力扣55. 跳跃游戏

55.跳跃游戏55.跳跃游戏难度:中等给定一个非负整数数组 nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。** **示例 1:输入:nums=[2,3,1,1,4]输出:true解释:可以先跳1步,从下标0到达下标1,然后再从下标1跳3步到达最后一个下标。示例 2:输入:nums=[3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为3的位置。但该下标的最大跳跃长度是0,所以永远不可能到达最后一个下标。分析:用贪心法,遍历数组每个元素,记录从当前下标和对应的元素,确定能够到达的最大距离,若大于当前最大距离则

力扣77. 组合

77.组合77.组合难度:中等给定两个整数n和k,返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案。示例1:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例2:输入:n=1,k=1输出:[[1]]回溯法解题思路:回溯法,一般可以解决如下几种问题:组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数按一定规则全排列,有几种排列方式棋盘问题:N皇后,解数独等等另外,会有一些同学可能分不清什么是组合,什么是排列?组合是不强

力扣77. 组合

77.组合77.组合难度:中等给定两个整数n和k,返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案。示例1:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例2:输入:n=1,k=1输出:[[1]]回溯法解题思路:回溯法,一般可以解决如下几种问题:组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集排列问题:N个数按一定规则全排列,有几种排列方式棋盘问题:N皇后,解数独等等另外,会有一些同学可能分不清什么是组合,什么是排列?组合是不强