09 2019 档案

摘要:我花了1个多小时才提交成功,思路很复杂,就不写了, 写一个很受启发的、好的思路 单调栈的方法没有看明白,以后回头再看!!!。 阅读全文
posted @ 2019-09-30 19:51 ACStrive 阅读(267) 评论(0) 推荐(0)
摘要:leetcode769. 最多能完成排序的块 我的第一次提交,滑动窗口法: 分析如下: 若 arr[0]==4,则第一部分至少为0~4,另外0~4范围内这五个数必须在0~4内,此时是一个划分;若遇到一个数大于4,比如arr[1]==8,则第一部分起码是0~8,j指示窗口最大位置,i指示最左位置,直到 阅读全文
posted @ 2019-09-30 17:33 ACStrive 阅读(294) 评论(1) 推荐(0)
摘要:周赛总结 vector模板: vector<int> nums(10, 0) 使用vector模板声明并初始化一维整数数组 vector<vector<int>> dp(100, <vector<int>>(2, 0)) vector定义二维数组,100*2大小,初始化为0 vector<vecto 阅读全文
posted @ 2019-09-29 23:29 ACStrive 阅读(196) 评论(0) 推荐(0)
摘要:结构体struct C++语法中,结构体不但可以有自己的数据成员,还可以有自己的函数成员、有自己的构造函数、析构函数、控制访问权限、继承、包含多态等。语法几乎一样。 这是对C中Struct的扩充,主要是因为为了保留对C的兼容。 用途:定义一些数据类型,组合为一个整体,而没有什么操作,适合与结构体。 阅读全文
posted @ 2019-09-29 21:29 ACStrive 阅读(619) 评论(0) 推荐(0)
摘要:leetcode155. 最小栈 第一次提交试用等容量的辅助栈来做,很容易想到: 接着查看别人的代码,发现可以优化辅助数组的容量,由于最小栈一些元素重复,当新元素大于最小栈栈顶元素时,新元素不入栈;pop时若弹出元素大于最小栈栈顶元素时,最小栈栈顶元素也不弹出,很好的优化思路。 添加两个约束条件即可 阅读全文
posted @ 2019-09-28 17:10 ACStrive 阅读(182) 评论(0) 推荐(0)
摘要:leetcode232.用栈实现队列 这道题和上一篇是姊妹篇:【小白刷题之路Day29】leetcode225. 用队列实现栈(C++ STL 队列的使用操作) 我的提交: 思路:两个栈S1、S2,栈1用来接收元素,当需要pop时,元素转到栈2,在栈2中逆序输出即可。 输入直接push进栈1,pop 阅读全文
posted @ 2019-09-28 12:27 ACStrive 阅读(215) 评论(0) 推荐(0)
摘要:leetcode225. 用队列实现栈 我的第一次提交: 缺点:push()操作简单,数据在元素中以队列形式存放,结果就是后面每次操作时都要循环处理数据, 查看别人代码,令人惊喜的是看到有人在push()操作时加一点工作量,让数据在队列中以栈的顺序存储好,接下来所有操作将变得简单。 新思路的第二次提 阅读全文
posted @ 2019-09-28 11:54 ACStrive 阅读(462) 评论(0) 推荐(0)
摘要:leetcode739 每日温度 第一次提交代码 除了i指示回溯的左端外,引入p指示回溯的右端。 最后优化代码: (开头特殊例子检测可以省略,不影响结果) 暴力法时间复杂度为O(n^2),优化后仍然不变,但是不优化无法通过案例(无数个“76”) 单调栈法(Monotone Stack) 本题是一个很 阅读全文
posted @ 2019-09-28 00:42 ACStrive 阅读(227) 评论(0) 推荐(0)
摘要:leetcode20 有效的括号 我的C++代码: 跟其他代码题解对比,我觉得思路与可读性不差。 总结: 阅读全文
posted @ 2019-09-27 19:03 ACStrive 阅读(170) 评论(0) 推荐(0)
摘要:给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认 阅读全文
posted @ 2019-09-27 18:41 ACStrive 阅读(320) 评论(0) 推荐(0)
摘要:求最小公倍数 比较,然后确定是否自增1 求一个数组的左面最大与右面最小dp数组。 记录一些很有收获的代码。 1、vector元素去重 sort()函数对vector进行排序; unique()函数让重复元素放在最后,返回重复元素开始的iterator; erase()函数根据截止元素进行擦除。 阅读全文
posted @ 2019-09-25 18:03 ACStrive 阅读(726) 评论(0) 推荐(0)
摘要:例3 求子集 利用每个位的01表征每个数字是否出现,这个思路太厉害了,膜拜! 阅读全文
posted @ 2019-09-25 17:25 ACStrive 阅读(90) 评论(0) 推荐(0)
摘要:1、leetcode78 求子集 阅读全文
posted @ 2019-09-25 15:36 ACStrive 阅读(232) 评论(0) 推荐(0)
摘要:1、leetcode78 求子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 思考良久仍不得要领,答主借助python语法特性短短四行解决,不过短短四行真是值得细细揣摩,太厉害了! (对应的递归法见这篇文章) 对应的位运算法更是跪了, 阅读全文
posted @ 2019-09-25 15:28 ACStrive 阅读(247) 评论(0) 推荐(0)
摘要:1、leetcode717 1比特与2比特字符 常规解题思路:从头开始遍历数组,遇到1跳两位,遇到0跳一位,最后检查末尾是0还是10。 贪心法思路:无论是数字0还是数字10,都以0结尾,那么检察末尾数字0前面有多少位1,查看是否是2的倍数个即可。 虽然时间复杂度也是O(n),但是很多例子中可明显降低 阅读全文
posted @ 2019-09-25 15:01 ACStrive 阅读(154) 评论(0) 推荐(0)
摘要:1、临时变量的非const引用 编译报错:Line 11: Char 34: error: cannot bind non-const lvalue reference of type 'std::__cxx11::string&' {aka 'std::__cxx11::basic_string< 阅读全文
posted @ 2019-09-23 18:15 ACStrive 阅读(1176) 评论(0) 推荐(1)
摘要:整数中1出现的次数 这道题好有难度,写了半晚上还是功亏一篑,看了书上解法才弄出来。就在要翻过这道题的时候,看到了牛客网上前几名的解法,瞬间给跪了。又花了半晚上,勉强看懂,现在已经无法用言语表达我的震撼感觉了,太厉害了。 阅读全文
posted @ 2019-09-22 01:26 ACStrive 阅读(127) 评论(0) 推荐(0)
摘要:(一下这些是我自己刷题路上的总结归纳,涉及到这些题的,欢迎留言交流) 第一部分 重难点在于常见的智力性、数学性的非编程技巧。 一、贪心法 贪心法符合我们思维方式,把问题分为一步接着一步,重点在于找到每一步的策略。 剑指offer 剪绳子 二、数学归纳法(找规律) 剑指offer 整数中1出现的次数 阅读全文
posted @ 2019-09-21 17:47 ACStrive 阅读(222) 评论(0) 推荐(0)
摘要:前言:回溯法和动态规划应该是考察率最多的两类算法,参考《从“排列问题”理解“回溯搜索”(DFS + 状态重置)、位掩码技巧、递归交换》,做一次总结 力扣No. 46 全排列 解决回溯问题,我的经验是 一定不要偷懒,拿起纸和笔,把这个问题的递归结构画出来,一般而言,是一个树形结构,这样思路和代码就会比 阅读全文
posted @ 2019-09-01 13:56 ACStrive 阅读(924) 评论(0) 推荐(0)
摘要:No. 1 生成列表 两者等价,输出为 阅读全文
posted @ 2019-09-01 12:04 ACStrive 阅读(171) 评论(0) 推荐(0)