- 博客(19)
- 收藏
- 关注
原创 代码随想录算法训练营第8天
从后向前填充元素,避免了从前向后填充元素时,每次添加元素都要将添加元素之后的所有元素向后移动的问题。其实很多数组填充类的问题,都可以先预先给数组扩容带填充后的大小,然后在从后向前进行操作。
2023-05-04 22:31:56 1107
原创 代码随想录算法训练营第7天
四个不同数组内,只要找到A[i] + B[j] + C[k] + D[l] = 0就可以,不用考虑有重复的四个元素相加等于0的情况。首先定义 一个unordered_map,key放a和b两数之和,value 放a和b两数之和出现的次数。遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中。定义int变量count,用来统计 a+b+c+d = 0 出现的次数。
2023-05-04 21:38:29 1174
原创 代码随想录算法训练营第二天 |
双指针,首尾指针,因为数组有序且有负数,所以数组的平方值在收尾两边之一取最大,然后其中一个指针向对应的方向移动即可。
2023-04-20 22:41:55 2303
原创 代码随想录算法训练营第一天 | 704. 二分查找、27. 移除元素
1.数组要有序2.值得注意的点区间的开闭锁所导致的边界条件的不同target在区间[left,right]中target在区间[left,right)中。
2023-04-19 22:59:01 2566
原创 双指针问题(中等难度)
4.Triplet Sum to Zero or Three sum(medium)问题描述给定一个未排序的数组,找出其中所有唯一的三元组加起来为零。Example 1:Input: [-3, 0, 1, 2, -1, 1, -2]Output: [-3, 1, 2], [-2, 0, 2], [-2, 1, 1], [-1, 0, 1]Explanation: There are four unique triplets whose sum is equal to zero.Example
2022-04-17 21:50:34 350
原创 双指针窗口题目(简单)
1.Pair with Target Sum (easy)问题描述给定一个排序数字数组和一个目标总和,在数组中找到一个总和等于给定目标的对。编写一个函数来返回两个数字(即对)的索引,以便它们相加到给定的目标。Example 1:Input: [1, 2, 3, 4, 6], target=6Output: [1, 3]Explanation: The numbers at index 1 and 3 add up to 6: 2+4=6Example 2:Input: [2, 5, 9,
2022-04-17 20:40:00 264
原创 双指针问题总结
在我们处理有序的数组并需要找到一组满足某些约束的元素的问题中,双指针方法可以首先考虑。元素集可以是一对、一个三元组甚至是一个子数组。 例如,看看下面的问题:给定一个排序数字数组和一个目标总和,在数组中找到一个总和等于给定目标的对。为了解决这个问题,我们可以一个一个地考虑每个元素(由第一个指针指向)并遍历剩余的元素(由第二个指针指向)以找到具有给定总和的对。 该算法的时间复杂度为 O(N^2)鉴于输入数组已排序,一种有效的方法是从一个指针开始,另一个指针在末尾。 在每一步,我们将查看两个指针指向的数
2022-04-17 19:15:00 242
原创 滑动窗口(更难)
8.Permutation in a String (hard)问题描述给定一个字符串和一个模式,找出该字符串是否包含模式的任何排列。排列被定义为字符串中字符的重新排列。 例如,“abc”有以下六个排列:abcacbbacbcacabcbaExample 1:Input: String="oidbcaf", Pattern="abc"Output: trueExplanation: The string contains "bca" which is a permutation o
2022-04-12 00:16:37 944
原创 滑动窗口题目(难题)
1.Longest Substring with Distinct Characters (hard)问题描述给定一个字符串,找出拥有不同字符的最长子字符串的长度。Example 1:Input: String="aabccbb"Output: 3Explanation: The longest substring with distinct characters is "abc".Example 2:Input: String="abbbb"Output: 2Explanation:
2022-04-09 13:00:20 555
原创 滑动窗口题目(中等)
3.Longest Substring with maximum K Distinct Characters (medium)问题描述给定一个字符串,找出其中不超过 K 个不同字符的最长子字符串的长度。Example 1:Input: String="araaci", K=2Output: 4Explanation: The longest substring with no more than '2' distinct characters is "araa".Example 2:Inp
2022-04-09 00:55:09 409
原创 滑动窗口题目(简单)
这类题目不需要额外的数据结构辅助1.Maximum Sum Subarray of Size K (easy)问题描述给定一个正数数组和一个正数“k”,求任何大小为“k”的连续子数组的最大和。Example 1:Input: [2, 1, 5, 1, 3, 2], k=3 Output: 9Explanation: 和最大的连续子数组为 [5, 1, 3].Example 2:Input: [2, 3, 4, 1, 5], k=2 Output: 7Explanation: 和最大的
2022-04-09 00:26:36 407
原创 滑动窗口问题总结
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2022-04-08 23:18:29 559
原创 c++面试语法基础常见问题
c++语法基础一.基础1.指针和引用的不同从汇编语言来看,一个指针和一个引用实现是相同的,他们都存放了一个地址。但c++的高级语言特性赋予了引用和指针在使用上的差异(1).引用必须初始化,必须依赖另一个对象才能存在,是另一个对象的别名(2).引用初始化之后不能被改变;指针可以改变所指的对象(3).“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小;(4).指针常量本身(以p为例)允许寻址,即&p返回指针常量(常变量)本身的地址,被
2020-05-13 10:50:32 187
原创 muduo网络库核心1 poller的封装
首先复习一下C++面向对象和基于对象的区别面向对象面向对象的三大特点:封装,继承,多态缺一不可封装:数据和处理数据的函数统一起来,封装在一个class中继承:通过继承某个类派生出一个新类,被继承的类称作基类,派生出的类称作派生类。派生类是对基类的补充,二者之间满足一定的归属关心,如动物(基类),鸟(派生类)。继承可以是public/private/protected继承,也可以是虚继承(用...
2019-08-28 10:34:00 156
原创 c++有趣的问题
1.实现一下i++与++i//++iint& int::operator++(){*this +=1;return *this;}//i++const int int::operator(int){int oldValue = *this;++(*this);return oldValue;}2.请你来写个函数在main函数执行前先运行_attribut...
2019-04-22 20:03:13 427
原创 c++智能指针简单实现
c++11新特性:智能指针#ifndef _smart_str#define _smart_str#include<iostream>using namespace std;class use {//用于测试->重载public: void method(){ cout << "Method is called!" << endl; }};...
2019-04-22 13:35:48 122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人