随笔分类 - 每周算法练习
摘要:"题目" class Solution { public: vector twoSum(vector& nums, int target) { vector res; for(int i=0;i
阅读全文
摘要:"题目" 这是上一道 "题目" 的升级题 上一道题目中的数组是没有重复的,现在是有重复的,那么会带来什么变化呢? 还是可以二分,但是有一种情况是当 和 , 都相等的时候,没有办法判断是向左还是向右。那么这个时候,就把 于是如果是数字都一样的数组,那么就会以O(N)的效率执行。LeetCode并没有卡
阅读全文
摘要:"题目" 二分 一不小心耗时超过100%的c++解决方案。哈哈哈
阅读全文
摘要:"题目" 思路 维护两个数组,一个是a[i] 表示以i为结尾的子序列乘积的最大值 一个是b[i] 表示以i为结尾的子序列乘积的最小值 然后就是动态规划的思想。 c++ class Solution { public: int s[1000005]; int a[1000005]; int b[100
阅读全文
摘要:"题目" c++
阅读全文
摘要:"题目" 煞笔题目,怪不得那么多人diss 两层for循环,它还疯狂卡精度,double的精度不够,必须long double
阅读全文
摘要:"题目" 这道题目实际上可以用动态规划来做。 对于每个区间,我们从右边边界,往左边走,如果能走n 1次,那说明以右边边界为起点存在一个题目中说的子链。 利用倍增算法,实际上倍增也是动态规划。f[i][j] 表示以i为结尾,能够往前走 2^j 次所到达的位置。 最后就是寻找以每个点为右边边界,往前走,
阅读全文
摘要:"题目" 水题,dfs include include include using namespace std; define MAX 100000 struct Node { int value; int c; int next; }edge[MAX+5]; int pos; int head[M
阅读全文
摘要:"题目" 解题思路 关键是要 ,找出L 的组合,然后遍历L的组合,用最大公约数就可以算出来当前L的值要停多少次 怎么找出L的组合呢?饭店是每隔K 有一个,是重复的,我们只需要算出第一个饭店两侧,起点和停顿点的情况,之后再加上k 1 ,k 2,k 3 就能得出所有L的组合。 数据范围是 10万,所以必
阅读全文
摘要:"题目" 解决思路是,每个位上都是9的情况,遍历一下就可以了。 include using namespace std; int n; int a[35]; int main() { scanf("%d",&n); int tag=0; while(n) { a[tag]=n%10; n=n/10;
阅读全文
摘要:"题目" 实现一个缓存机制。很多人的写法都是使用HashTable, Map,Dictionary 或者别的工具。 但是我,自己硬核手写了一个可插入删除的AVL树,并且把这道题目给过了 代码实在有点偏长,以后再重构代码。 过程中Wa了很多次,最后一次的AC的感觉,真是找到以前比赛时候的感觉。
阅读全文
摘要:KMP: csharp public int KMP (ReadOnlySpan content, ReadOnlySpan span) { _next = new int[span.Length]; GetNext (span); int i = 0; int j = 0; while (i =
阅读全文
摘要:平衡二叉树 左旋,右旋,左右旋,右左旋 具体原理就不说了,网上教程很多。这里只实现了建树的过程,没有实现删除节点的操作。 下一篇会实现删除节点的操作。 // // main.cpp // AVL // // Created by 小康 on 2019/3/30. // Copyright © 201
阅读全文
摘要:问题来源 写这篇博客来源于一次面试的经历。经典面试题:如何用 两个栈实现一个队列 ?它经常被拿来面试。如果对栈和队列比较掌握的人,就可以轻松的答出来。 然而,那天坐在对面的面试者直接抛出: 如何用有限个栈模拟常数效率操作的队列呢 ?作为一个面试官,我 佯装镇定 ,因为这个和用栈实现队列可是 一个天上
阅读全文
摘要:B. Parade time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Very soon there will be a parade of
阅读全文
摘要:"LeetCode 150 Evaluate Reverse Polish Notation" 后缀表达式,利用栈就可以轻松计算 c++ class Solution { public: int stack[10005]; int pos=0; int evalRPN(vector& tokens)
阅读全文
摘要:LeetCode 148 Sort List 排序, 我使用了三种排序: 手写快排: 48ms C++模板快排: 48ms 堆排序:52ms c++:
阅读全文
摘要:题目 这是一道 指针题目。 指针是最烦的,但是弄清楚指针的原理,这样的题目也可以轻松过。 思路就是遍历链表,没遍历到一个新的节点,都把它和从头开始比,遇到第一个比它大的就插进去。 写的过程中一定要小心,很容易就写错。 c++ 题解
阅读全文
浙公网安备 33010602011771号