摘要:Num 64 最小路径和 因为动态规划必考所以先刷一下动态规划tag 一遍过,题给vector是可变的,这边先用不可变的数组,稍微有点浪费可能? 然后从可能来的两个点找最小值加当前值即可。 一个可以优化的地方:1000*1000过大,实际上可以使用一维数组。(注意不要因为一维数组就省略了对i的判断,
阅读全文
|
11 2019 档案
摘要:Num 64 最小路径和 因为动态规划必考所以先刷一下动态规划tag 一遍过,题给vector是可变的,这边先用不可变的数组,稍微有点浪费可能? 然后从可能来的两个点找最小值加当前值即可。 一个可以优化的地方:1000*1000过大,实际上可以使用一维数组。(注意不要因为一维数组就省略了对i的判断,
阅读全文
摘要:Num 6 Z字形变换 注意点: 1、空和1需要特判 2、斜着的是反的,越往上编号越大 3、可能会出现long和short不满的情况,每行写的时候注意,要带着判断 4、longs和shorts分别代表竖行和横行数数量 class Solution { public: string convert(s
阅读全文
摘要:Num 5 最长回文子串 Manacher是专门用于解决这个问题的算法 说明: 1、temp:在所有字符前面插入了#的新字符串,注意最头和最尾巴也插入,这样所有原来字符都在奇数位置 2、maxcenter:已知的最大的回文串中心位置 3、maxend:目前最大回文串覆盖的尾部索引号 4、在判断i的时
阅读全文
摘要:Num 4 寻找两个有序数组的中位数 啊啊啊啊啊啊啊wa了无数次卡了两天我终于给这个整出来了!!! 方法很简单,各种边界条件超级无敌坑爹。 看到log就想二分。target就是中位数,或者用来取平均的两个数 target中两个数组分别占有多少部分。然后如果正常情况下,用两个里面最大的比较就行。 判断
阅读全文
摘要:Num 3 无重复的最长子串 最简单做法:暴力二重循环,tle 优化:只走一次,每次两个标记左右,如果出现重复的,把left调整到第一个不重复的位置,每次得出的子串和最长的比较 class Solution { public: int lengthOfLongestSubstring(string
阅读全文
摘要:Num 2 复习 链表 注意是Listnode*a这样的才可以使用a->这类符号 简化代码 注意范围 变成整数会爆int,还有输出结果是只需要以链表形式表示的(起初开链表存储,存完以后用) 还要有一个节点用来返回结果的,不然一直向后走,最后找不到链表头 ListNode*p=new ListNode
阅读全文
摘要:Num 1 好久没有做题了qwq 先把旧的题有优化算法的看一下 新的 stl map 简单总结 暴力(二重循环)最开始的算法 (ps map的搜索是红黑树,肯定比线性走一遍快的) 优化 把所有的数对应的存在map里面(map[元素]=下标) 然后寻找map.count(target-now) 那么这
阅读全文
|