- 博客(21)
- 收藏
- 关注
原创 整数规划(一)
部分或全部决策变量是整数的规划问题,称为整数规划。如果模型是线性(一次,加减运算)的,则称为整数线性规划。目标:条件:如果全部决策变量x取整数值,则称为全整数规划,反之,则称为混合整数规划。如果决策变量只能取0 和1 ,则称为0-1规划。
2024-11-18 09:45:37
479
1
原创 linux 基础操作
reboot 会立即执行,期间不会留下保留文件及相关配置的时间。而shutdown在执行期间,会先向所有用户通知,给一些进程留下自己关闭的时间。随后安全的关闭所有服务并停止硬件工作。关机:shutdown -h now 或者 poweroff 延迟关机:shutdown -h 2。重启: shutdown -r now 或者 reboot 延迟重启: shutdown -r 2。
2024-05-21 09:18:14
205
1
原创 DQN原文解读-2015-Human-level control through deep reinforcement learning
论文:doi:10.1038/nature14236。
2023-11-09 14:41:19
730
原创 深度强化学习(三):策略学习
训练P-net需要借助策略梯度算法(policy gradient).回忆一下策略函数(policy Function)用一个神经网络来近似策略函数,这个神经网络被称为policy network.如何训练P-net?是一个概率密度函数,输入是当前状态s,输出为当前状态下采用每个行为的概率。注意:对于当前状态,其所有行为的概率之和为1。越大,说明当前的状态越好,就越接近目标。是策略梯度的无偏估计,因此可以用蒙特卡洛近似。用来表示再当前策略下,某个状态的好坏。是动作-价值函数,用来评估在状态。
2023-11-07 15:27:11
154
原创 机场停机位分配问题的精确和启发式求解方法
Exact and heuristic solution approaches for the airport gate assignment problem
2023-10-09 16:52:58
1358
原创 数组和字符串
一、数组简介 区别集合、列表和数组。集合一般被定义为:有一个或多个确定的元素所构成的整体,即集合和就是一组失误组合在一起。特性:集合里的元素类型不一定相同,集合里面的元素是没有顺序的。集合一般不会直接作为数据结构出现在编程语言中,但是经过在集合的基础上添加一些规则就会形成我们常用的数据结构,如数组,链表,队列,栈,树,图等等。 列表(或者是线性列表)的定义为:一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合。在编程语言中,列表最常...
2021-12-26 21:20:10
175
原创 LeetCode 刷题 (一)算法基础
34. 在排序数组中查找元素的第一个和最后一个位置思路:在学习过数据结构与算法以后,几种常见的查找算法:顺序查找、二分查找、B树、分块查找、散列查找等等。通常情况下,我们选择则二分查找也就是折半查找就可以了,当然,如果题目给的数据结构非常切合某一特定算法也是可以考虑的。 二分查找的思想就是:基于原本的有序顺序,我们先与初始序列中间的元素比较,这样就可以当前元素的选择范围缩小一半。class Solution {public: vector<int> sear...
2021-11-15 23:00:48
535
原创 LeetCode 刷题 (十) 算法入门 动态规划
70. 爬楼梯70. 爬楼梯70. 爬楼梯假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢思路:很经典的动态规划。由于每次只能上一个或者两个台阶,所以你到达n阶台阶的方式只能是(1)从n-1阶上去;(2)从n-2阶上去。所以很容易得出转移方程:f(n) = f(n-1)+f(n-2);所以我们这时就可以借助数学方法求数列通项了。但是没必要。我们只需要从n=0,n=1开始,每次记录两个数f(i-1)和f(i-2)即可;...
2021-11-14 21:30:15
423
原创 LeetCode 刷题 (九)算法入门--回溯
77. 组合77. 组合77. 组合给定两个整数n和k,返回范围[1, n]中所有可能的k个数的组合。你可以按任何顺序返回答案。思路:如果解决一个问题有多个步骤,每一个步骤有多种方法,题目又要我们找出所有的方法,可以使用回溯算法;回溯算法是在一棵树上的 深度优先遍历(因为要找所有的解,所以需要遍历);为什么说是在一棵树上的深度优先遍历呢?比如说,你现在要解决一个问题,这个问题被分为了若干的步骤,对于每一个步骤都有多个方法到下一个步骤。(听君一席话,就是一席话,嘿嘿嘿...
2021-11-13 23:34:49
4335
1
原创 leetCode 刷题 (八)算法入门
994. 腐烂的橘子994. 腐烂的橘子994. 腐烂的橘子思路:显然本题可以利用图的广度优先遍历,我们还是把所有腐烂的橘子想象成与一个超级起点相连的点,这样广度优先遍历就可以从一个起点出发。同时,用flag标记本轮是否有新鲜橘子被感染。记录腐烂次数,然后等广度优先遍历处理完后,检查是否还有未腐烂的橘子,如果没有,则返回次数,如果有,则表明有新鲜橘子四周没有腐烂橘子,永远不会腐烂。注意特殊情况:没有橘子、没有腐烂橘子。class Solution {public: static cons
2021-11-12 20:36:10
4634
原创 LeetCode 刷题 (七)算法入门
542. 01 矩阵给定一个由 0 和 1 组成的矩阵 mat,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。两个相邻元素间的距离为 1 。方法一:思路:首先,我们很容易理解,从每一个0开始去计算到不为0的dist,采用广度优先的遍历,第一轮被遍历到的就是1,从每一个0的位置开始依次BFS进行,然后取dist的最小值。不过如果0的个数较多,处理起来比较复杂。在思考一下,我们可以提升一下思维,我们可以假设一个BFS的起点(逻辑上存在),这个起点和矩阵中所.
2021-11-11 23:37:09
195
原创 leetCode 刷题 20天(六)算法入门
733.图像渲染733. 图像渲染解题思路:本题非常简单,无论是用图的BFS广度优先还是DFS深度优先,都可以非常快捷的解决。复习数据结构的小伙伴,可以用递归和非递归的方法都写一下,顺便复习了。class Solution {public: void bfs(vector<vector<int>>& image, int sr, int sc, int newColor){ int oldColor = image[s...
2021-11-10 23:36:55
1332
原创 LeetCode 刷题 (五)(算法入门)
3.无重复字符最长子串3. 无重复字符的最长子串----LeetCode方法一:锻炼一下自己的注释,可能有点啰嗦。嘿嘿嘿~~~思路:每次添加一个字符到最长无重复串中,用 i,j标记该子串的首尾,然后遍历一遍去判断当前加入子串的元素有没有重复,如果重复,找到重复的位置,并更新子串首部。class Solution {public: //返回重复元素的位置,x表示当前最长子串的首部,y表示当前要加入最长子串的元素 int Pos(string s,int x, int .
2021-11-08 23:22:52
717
原创 leetCode 刷题 算法入门20天(四)
题目链接: 876. 链表的中间结点解题思路:比较简单,快慢指针;p,q两个指针;初始p,q指向头结点;p每次移动1位,q每次移动2位;当q访问到链表尾部时,p刚好到链表中间;class Solution {public: ListNode* middleNode(ListNode* head) { //快慢指针 p每次前进一个位置,q每次前进两个位置 ListNode *p=head,*q=head; while(q->next!=
2021-11-05 23:13:13
448
原创 leetCode 刷题 (三)
344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:s = ["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]提示:1 <=.
2021-11-04 21:34:38
114
原创 leetCode 刷题 (算法入门 (二))
283.移动零题目描述: 给定一个数组nums,编写一个函数将所有0移动到数组末尾,同时保持元素相对顺序不变。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。(来源:LeetCode)方法一: 顺序遍历nums数组,用zero记录0元素的个数。如果当前元素为0,zero增加1;如果当前元素非0,且zero不为0,则当前元素向前移动zero个位置,同时将...
2021-11-03 21:41:20
116
原创 LeetCode 刷题 (算法入门)
一、有序数组的进阶方法三:双指针法利用双指针,left和right从数组两端向中间遍历,每次将对应元素平方后比较大的值逆序存放在数组中class Solution {public: vector<int> sortedSquares(vector<int>& nums) { int n = nums.size(); vector<int> ans(n);//初始化一个大小为n的数组 for (
2021-11-03 11:00:00
240
原创 leetcode 刷题(算法入门)
一、有序数组的平方 997题给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]来源:力扣(LeetCode...
2021-11-02 20:59:35
345
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人