09 2019 档案

摘要:思路1 刚看到这道题的时候,第一个思路还是DFS,但是考虑到前面几个问题,怕DFS超时,所以直接使用DP。 思路2 动态规划 题目中给出输入样例为: DP需要维护一个二维数组,dp[i][j]表示到(i,j)的最短的路径和。 首先看两条边,两条边的走法比较单一,只能横着走过去或者竖着向下走,因此dp 阅读全文
posted @ 2019-09-28 10:30 尚修能的技术博客 阅读(193) 评论(0) 推荐(0) 编辑
摘要:思路1 这个题目第一个思路还是用DFS,和第62题一样,但是在递归的时候需要判断有无障碍物。因为第62题用的DFS,Leetcode提示Time Limit Exceeded,所以这道题没有尝试DFS的做法,而是直接使用了DP。 思路2 根据第62题可以得到状态转移方程为dp[i][j] = dp[ 阅读全文
posted @ 2019-09-28 09:18 尚修能的技术博客 阅读(167) 评论(0) 推荐(0) 编辑
摘要:今天在使用VS2017写程序时,报错: 出错的代码如下: include "pch.h" include include using namespace std; class TA { public: TA(int &i) :m_i(i) {}; ~TA(); //TA(const TA& ta); 阅读全文
posted @ 2019-09-18 20:02 尚修能的技术博客 阅读(5255) 评论(0) 推荐(0) 编辑
摘要:思路1 这个思路比较简单,就类似于图的遍历算法,用递归来解。递归的基线条件是到达目的地或者是走到了边界。递归的条件是机器人从一个点只能往下走或者往右走,即x = x + 1或者y = y+1。 到达某一格的路径数量等于它的上面和左边的路径数之和。 C语言实现 但是上面代码在LeetCode上运行,会 阅读全文
posted @ 2019-09-12 18:37 尚修能的技术博客 阅读(165) 评论(0) 推荐(0) 编辑
摘要:《算法图解》书 动态规划章节读书笔记 1 对于背包问题,可以偷商品的一部分吗? 答:不可以,使用动态规划问题时,要么考虑拿走整件商品,要么考虑不拿,而没法判断该不该拿走商品的一部分。 2 动态规划能处理相互依赖的情况吗? 答:不可以,仅当每个子问题都是离散的,即不依赖于其他子问题时,动态规划才管用。 阅读全文
posted @ 2019-09-12 10:06 尚修能的技术博客 阅读(170) 评论(0) 推荐(0) 编辑
摘要:C++ STL中,哈希表对应的容器是 unordered_map(since C++ 11)。根据 C++ 11 标准的推荐,用 unordered_map 代替 hash_map。 与Map的区别 STL中,map 对应的数据结构是 红黑树 。红黑树是一种近似于平衡的二叉查找树,里面的数据是有序的 阅读全文
posted @ 2019-09-12 09:54 尚修能的技术博客 阅读(619) 评论(0) 推荐(0) 编辑
摘要:Map的常见函数 Map的实现机制 STL中的Map底层实现机制是RB树(红 黑树) 阅读全文
posted @ 2019-09-12 09:54 尚修能的技术博客 阅读(143) 评论(0) 推荐(0) 编辑
摘要:题目描述 题目思路1 这道题LeetCode上的标签是Dynamic programming,即动态规划,第一个思路就是用动态规划来解。 首先维护一个二维数组dp[j][i]。这个动态数组表示[j, i]之间是否有回文。当j = i时,只有一个字符,肯定是回文,当 j + 1 = i 时,说明是相邻 阅读全文
posted @ 2019-09-12 09:26 尚修能的技术博客 阅读(108) 评论(0) 推荐(0) 编辑
摘要:题目描述 题目思路: 这道题要求的是最长的子串而不是最长的子序列,在LeetCode上也给了提示 Note that the answer must be a substring, "pwke" is a subsequence and not a substring. 先不考虑代码的问题,比如有一 阅读全文
posted @ 2019-09-11 09:31 尚修能的技术博客 阅读(102) 评论(0) 推荐(0) 编辑
摘要:题目描述: 题目思路: 这道题目比较简单,一开始我的思路是把两个链表里存储的数变成int类型,然后两个int类型相加,在把加和sum分解成个位,十位,百位,然后把分解之后的数据再插入到链表中即可,所以一开始的代码是这样的: 提交之后发现,LeetCode的测试数据是 这样的话,不论是用int类型还是 阅读全文
posted @ 2019-09-11 08:00 尚修能的技术博客 阅读(171) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-09-10 21:54 尚修能的技术博客 阅读(4) 评论(0) 推荐(0) 编辑
摘要:ui setupUi() 新建好Qt的工程之后,总是会在MainWindow函数中有一行代码 跟踪进这行代码 ui setupUi(this)是由.ui文件生成的类的构造函数,这个函数的作用是对界面进行初始化,它按照我们在Qt设计器里设计的样子把窗体画出来,把我们在Qt设计器里面定义的信号和槽建立起 阅读全文
posted @ 2019-09-09 11:28 尚修能的技术博客 阅读(11278) 评论(0) 推荐(4) 编辑
摘要:下面这个代码可能是最简单的快速排序了,采用递归的思想,每次都把基准值选为第一个元素,把小于基准值的元素放在B数组中,把大于基准值的元素放在C数组中,然后再对B数组进行快速排序,对C数组进行快速排序。当B,C数组均有序后,将B数组(全部小于基准值)+基准值+C数组(全部大于基准值)拼接成A数组即可。 阅读全文
posted @ 2019-09-05 09:42 尚修能的技术博客 阅读(182) 评论(0) 推荐(0) 编辑
摘要:在慕课上报名了浙江大学的《数据结构》这门课,主讲人陈越老师,何钦铭老师,两位老师讲的很好,课后有配套的PTA可以用来做题,练习。 最近在PTA上刷题,发现自己代码实现能力是真的差劲,一开始刷题是C语言,最近开始换成C++,之前虽然用过C++的STL,但是刷起题目来,还是不顺手,很多知识点都忘记了。 阅读全文
posted @ 2019-09-03 11:48 尚修能的技术博客 阅读(750) 评论(0) 推荐(0) 编辑
摘要:题目描述 题目思路: 思路比较简单,排序然后输出即可。 C++实现 include include include using namespace std; int main() { int N; int i,j; int k; int temp; int count = 0; vector wor 阅读全文
posted @ 2019-09-02 11:19 尚修能的技术博客 阅读(137) 评论(0) 推荐(0) 编辑
摘要:题目描述 题目思路 1 第一步是如何区分插入排序和归并排序,插入排序前面一部分是有序的,后面一部分尚未处理的序列没有变化。 2 继续迭代 (1) 插入排序的继续迭代比较好实现,只要从无序部分的第一个元素开始执行一次循环即可。 (2) 归并排序的难点在于找到归并段,在找到正确的归并段后,将非递归的归并 阅读全文
posted @ 2019-09-02 09:42 尚修能的技术博客 阅读(237) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示