算法
文章平均质量分 59
JoesRain_机器学习算法_CVer
这个作者很懒,什么都没留下…
展开
-
滑动窗口大杀器,牛逼
给出两个字符串 s和 t,要求在 s中找出最短的包含 t中所有字符的连续子串。数据范围:0 > |S|,|T| \le100000>∣S∣,∣T∣≤10000,保证s和t字符串中仅包含大小写英文字母要求:进阶:空间复杂度O(n)O(n), 时间复杂度O(n)O(n)例如:S ="XDOYEZODEYXNZ"S="XDOYEZODEYXNZ"T ="XYZ"T="XYZ"找出的最短子串为"YXNZ""YXNZ".注意:如果 s中没有包含 t中所有字...原创 2021-11-13 09:16:07 · 560 阅读 · 0 评论 -
#最长无重复子数组#
这个题做起来很有感觉。之前很长时间没刷题,一个进制问题就难住了我,被鄙视了。但我知道那不是我的真实水平,只是笑了一下。被鄙视也是常有的事,哈哈,谁还没被鄙视过。给定一个数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组。数据范围:0\le |arr| \le 10000000≤∣arr∣≤1000000,0 < arr_i \le 100000原创 2021-10-22 08:48:33 · 234 阅读 · 0 评论 -
设计LRU缓存结构,0的突破
描述设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设大小为 k ,并有如下两个功能1. set(key, value):将记录(key, value)插入该结构2. get(key):返回key对应的value值提示:1.某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的,然后都会刷新缓存。2.当缓存的大小超过k时,移除最不经常使用的记录。3.输入一个二维数组与k,二维数组每一维有2个或者3个数字,第1个数字为opt,第2,3个数字为key,v原创 2021-10-14 22:25:07 · 115 阅读 · 0 评论 -
几个有意思的题
1.获取某个元素索引vector<int>::iterator root_vin = find(vin.begin(), vin.end(), root->val);int rootIdx_vin = root_vin - vin.begin();先找到这个迭代器,再减去最开始的迭代器,得到索引2.获取数组的子数组使用迭代器生产子数组son = {array.begin() , array.begin() +i}二叉树的算法,适合使用递归的方法来解决,一原创 2021-10-04 10:21:36 · 115 阅读 · 0 评论 -
leetcode典型算法题解析(虽然简单,绝对不凡)
1588. 所有奇数长度子数组的和给你一个正整数数组arr,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr中 所有奇数长度子数组的和 。int sumOddLengthSubarrays(vector<int>& arr) { int res = 0; for(int i = 0; i < arr.size(); i ++){ int left = i + 1, right = ...原创 2020-10-11 21:43:57 · 325 阅读 · 0 评论 -
c++算法提速,刷题,竞赛必备
前言这两天在LeetCode上刷题的时候看见有好几个速度排名第一的代码中都有一段类似的代码,如下:static const auto io_sync_off = [](){ // turn off sync std::ios::sync_with_stdio(false); // untie in/out streams std::cin.tie(nullptr); return nullptr;}();1 2 3 4 5 6 7 8转载 2020-08-19 22:13:55 · 634 阅读 · 0 评论