part01专题

代码随想录算法跟练 | Day8 | 字符串 Part01

个人博客主页:http://myblog.nxx.nx.cn 代码GitHub地址:https://github.com/nx-xn2002/Data_Structure.git Day8 344. 反转字符串 题目链接: https://leetcode.cn/problems/reverse-string/ 题目描述: 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组

day 38 ||第九章 动态规划part01||509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

509. 斐波那契数 首先我想的是递归方法,蒙对了,不过你自己对比一下你的递归和卡尔的递归,是不是还可以简化。。。。。 class Solution {public int fib(int n) {if(n==0) return 0;if(n == 1) return 1;int sum = recursion(n-1)+recursion(n-2);return sum;}private

day31贪心算法part01| 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

**455.分发饼干 ** 视频讲解 | 力扣链接刚开始想到的,但是这样太暴力了,太笨了 class Solution {public:int findContentChildren(vector<int>& g, vector<int>& s) {// 胃口g 饼干尺寸sint result = 0;sort(s.begin(), s.end());sort(g.begin(), g.

day 6 第三章 哈希表part01(哈希表理论、数组、set、map)

day 6 第三章 哈希表part01 ● 哈希表理论基础 ● 242.有效的字母异位词 ● 349. 两个数组的交集 代码随想录链接 ● 202. 快乐数 ● 1. 两数之和 ● 哈希表理论基础 遇到了要快速判断一个元素是否出现集合里的时候 && 判断一个元素是否出现过的场景,就要考虑哈希法。哈希法是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的

day 6 第三章 哈希表part01

day 6 第三章 哈希表part01 ● 哈希表理论基础 ● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数 ● 1. 两数之和 ● 哈希表理论基础 遇到了要快速判断一个元素是否出现集合里的时候 && 判断一个元素是否出现过的场景,就要考虑哈希法。哈希法是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。哈希法,常

RERCS系统开发实战案例-Part01 快速启动面板创建新功能启动面板

需求背景:RERCS系统设计合同应收付比例调整界面,目的为合同与应收付款调整关联,保证数据的完整性与准确性。 步骤① 参数化快速启动板事务码 :LPD_CUST_PARAM 选择对应的角色与实例 可以看到系统中的快速启动面板菜单中已有的功能: 步骤② 在对应的功能文件夹中新建应用程序 必填项字段解析: 链接文本:即快速启动页面看到的功能描述。 应用程序类型:此处是WDA的ABAP功能,故选择此项。

【随想录】Day31—第八章 贪心算法 part01

目录 题目1: 455. 分发饼干1- 思路2- 题解⭐分发饼干 ——题解思路 题目2: 摆动序列1- 思路2- 题解⭐摆动序列 ——题解思路 题目3: 最大子数组和1- 思路2- 题解⭐ 最大子数组和 ——题解思路 题目1: 455. 分发饼干 题目链接:455. 分发饼干 1- 思路 贪心的思路,使得饼干和胃口都有序,定义两个指针使得饼干满足孩子胃口进行计

java算法day58 | 单调栈part01 ● 739. 每日温度 ● 496.下一个更大元素 I

739. 每日温度 思路: 这道题用暴力求解法会超时。 那我们就要想如何只遍历一遍就能求解出每个位置的下一个更大值在哪呢。 主要的思想就是空间换时间。定义一个单调栈,每次遇到比栈顶元素小的或相等的,直接入栈,遇到比栈顶元素大的,while循环取栈顶元素,给这些位置计算结果。 class Solution {public int[] dailyTemperatures(int[] tempe

【随想录】Day24—第七章 回溯算法part01

目录 题目1: 理论基础1- 思路及回溯模板 题目2: 组合1- 思路2- 题解⭐组合 ——题解思路 题目1: 理论基础 1- 思路及回溯模板 回溯法模板 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选

代码随想录|Day31|贪心算法 part01|● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

455.分发饼干 class Solution:     def findContentChildren(self, g: List[int], s: List[int]) -> int:         # if not g or not s:  可以没有这句,因为后面index>=0已经涵盖了         #     return 0         g.sort()

代码随想录 day38 第九章 动态规划part01

●  理论基础 ●  509. 斐波那契数 ●  70. 爬楼梯 ●  746. 使用最小花费爬楼梯 理论基础 解决动态规划必须要想清楚的点 dp数组以及下标的含义递推公式dp数组如何初始化遍历顺序打印数组 检查结果 1. 斐波那契数 关联 leetcode 509. 斐波那契数 思路 动规五部曲 dp数组以及下标的含义 dp[i] 就是第 i 个斐波那契数的值 递推

java算法day38 | 动态规划part01 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯

理论基础 递归五部曲: 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 509. 斐波那契数 动规五部曲: 这里我们要用一个一维dp数组来保存递归的结果 确定dp数组以及下标的含义 dp[i]的定义为:第i个数的斐波那契数值是dp[i] 确定递推公式 为什么这是一道非常简单的入门题目呢? 因为题目已经把递推公式直接给我

java算法第31天 | 贪心算法 part01 ● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

理论基础 贪心算法没有固定的套路,贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 贪心算法一般分为如下四步: 将问题分解为若干个子问题 找出适合的贪心策略 求解每一个子问题的最优解 将局部最优解堆叠成全局最优解 这个四步其实过于理论化了,我们平时在做贪心类的题目 很难去按照这四步去思考,真是有点“鸡肋”。 做题的时候,只要想清楚 局部最优 是什么,如果推导出全局最优,其实就够了。

代码随想录 day24 第七章 回溯算法part01

今日内容: ●  理论基础 ●  77. 组合 1. 理论基础 回溯法也叫回溯搜索法 是一种搜索方式递归的副产品,有递归就有回溯并不高效,本质就是暴力穷举。组合无序,排列有序回溯法解决的问题都可以额抽象为树形结构 N 叉树回溯法解决的都是在集合中递归查找子集 集合的大小就构成了树的宽度,递归的深度,都构成的树的深度回溯法模板 回溯函数模板返回值以及参数 返回值一般为 void参数 一

代码随想录算法训练营第14天 part01 | 二叉树理论基础篇

代码随想录 二叉树理论基础篇 二叉树的种类 二叉树有两种主要的形式:满二叉树和完全二叉树 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节点的二叉树。 完全二叉树 在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中

代码随想录算法训练营第33期第五章 栈与队列part01

232. 用栈实现队列 14 分 40 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,

Day10|栈与队列part01:232.用栈实现队列、225.用队列实现栈

232. 用栈实现队列 使用两个栈,注意pop和peek: class MyQueue {private Stack<Integer> stackIn;private Stack<Integer> stackOut;public MyQueue() {stackIn = new Stack<>();stackOut = new Stack<>();}public void push(int x

day31 第八章 贪心算法 part01● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。  证明不用贪心的方法:最好用的策略就是举反例,如果想不到反例,那么就试一试贪心吧。 贪心合理性证明:数学归纳法和反证法。 贪心没有套路,说白了就是常识性推导加上举反例。  一遍过。就是小的胃口用尽量小的饼干填饱。 class Solution {public:int findContentChildren(vector<i

代码随想录算法训练营第33期第三章 哈希表part01

242. 有效的字母异位词 04分 21 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 直

代码随想录算法训练营第33期day03: 第一章链表 part01

203. 移除链表元素 10分18         给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:head = [], val = 1 输出:[] 示例 3: 输入:h

Leetcoder Day34| 动态规划part01

动态规划理论基础 什么是动态规划 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划的每一个状态一定是从上一个状态推导出来的,这一点有别于贪心算法,贪心是从局部直接选择最优,不需要推导。 比如背包问题:有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i

代码随想录算法训练营(JAVA) |第四章 字符串part01 DAY07

今日任务  力扣344. 反转字符串,  541. 反转字符串 II,  54. 替换数字, 151. 反转字符串中的单词,55. 右旋字符串 对于这道题目一些同学直接用C++里的一个库函数 reverse,调一下直接完事了, 相信每一门编程语言都有这样的库函数。 如果这么做题的话,这样大家不会清楚反转字符串的实现原理了。 但是也不是说库函数就不能用,是要分场景的。 如果在现场

代码随想录算法训练营第31天 |第八章 贪心算法 part01

学习目标: 455.分发饼干 376. 摆动序列 53. 最大子序和 学习内容: 455.分发饼干 class Solution {public:int findContentChildren(vector<int>& kid, vector<int>& cookie) {sort(kid.begin(),kid.end());sort(cookie.begin(),cookie.

Leetcoder Day27| 贪心算法part01

语言:Java/Go 理论 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 什么时候用贪心?可以用局部最优退出全局最优,并且想不到反例到情况 贪心的一般解题步骤 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 455.分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩

代码随想录算法训练营(JAVA) | 第三章 哈希表part01 DAY05

今日任务  力扣242. 有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和 什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。  什么时候使用哈希法,当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。 使用数组和set来做哈希法的局限。 数组的大小是受

代码随想录算法训练营(JAVA) | 第二章 链表part01 DAY03

今日任务  力扣 203. 移除链表元素 ,707. 设计链表,206. 反转链表 理清楚思路,在做题                 添加节点    先处理新节点(cur.next)再处理老节点(pre.next)                 删除节点    要想删除当前就得知道他前一个 所以就有了cur 和 pre  虚拟头结点很关键 203. 移除链表元素 思路 关