姚军

富贵非吾愿,帝乡不可期。怀良辰以孤往,或植杖而耘耔。
私信 关注
我不是匠人
码龄5年

公众号【我不是匠人】一个没有故事的程序员

  • 231,448
    被访问量
  • 1,265
    原创文章
  • 2,993
    作者排名
  • 148
    粉丝数量
  • 于 2016-02-14 加入CSDN
获得成就
  • 获得95次点赞
  • 内容获得73次评论
  • 获得198次收藏
荣誉勋章
兴趣领域
  • #人工智能
    #数据分析#算法#机器学习#视觉/OpenCV#图像处理#NLP#自然语言处理#深度学习
TA的专栏
  • PAT甲级真题题解
    137篇
  • PAT乙级真题题解
    101篇
  • LeetCode经典题
    166篇
  • Java后端开发面经
    8篇
  • 历年考研复试题
    147篇
  • 团体程序设计天梯赛
    97篇
  • C++
    27篇
  • Python
    31篇
  • Go
    5篇
  • LeetCode
    2篇
  • 雅思
    4篇
  • 读书
    1篇
  • ES
    3篇
  • 图像
    1篇
  • 机器学习经典算法
    7篇
  • 程序员面试金典
    13篇
  • 程序员代码面试指南
    14篇
  • 数据结构与算法题目集
    57篇
  • 2019年校招真题
    13篇
  • 2018年校招真题
    7篇
  • 2017年校招真题
    8篇
  • 2016年校招真题
    7篇
  • 华为机试
    3篇
  • 数据结构与算法实战
    11篇
  • PAT乙级练习题
    32篇
  • 编程马拉松
    9篇
  • 笔试编程题
    3篇
  • 基础编程题目集
    15篇
  • 初学者题库
    14篇
  • 剑指offer
    21篇
  • 蓝桥杯
    5篇
  • hihoCoder
    1篇
  • AcWing
    58篇
  • 51Nod
    48篇
  • Luogu
    5篇
  • HDOJ
    63篇
  • ZOJ
    14篇
  • POJ
    12篇
  • ————ACM————
    1篇
  • DFS
    67篇
  • BFS
    26篇
  • DP
    50篇
  • STL
    33篇
  • Trie
    6篇
  • LCA
    5篇
  • Tree
    81篇
  • KMP
    3篇
  • Manacher
    6篇
  • 滑动窗口
    2篇
  • 前缀和
    7篇
  • 最小生成树
    7篇
  • 最短路径
    26篇
  • 并查集
    29篇
  • 背包问题
    10篇
  • 最大独立集
    3篇
  • 匈牙利算法
    5篇
  • 树状数组
    5篇
  • 欧拉函数
    5篇
  • 线段树
    1篇
  • 字符串
    116篇
  • 暴力
    1篇
  • 数论基础
    93篇
  • 简单题
    63篇
  • 链表
    32篇
  • 小米OJ
    8篇
  • 贪心算法
    30篇
  • 拓扑排序
    8篇
  • 栈与队列
    14篇
  • 堆排序
    4篇
  • 哈夫曼树
    7篇
  • 高精度
    20篇
  • 二分查找
    28篇
  • 哈希散列
    23篇
  • 递归
    11篇
  • 排序
    61篇
  • 模拟
    23篇
  • 位运算
    9篇
  • 技巧题
    7篇
  • 数组
    40篇
  • 双指针
    21篇
  • 枚举
    3篇
  • 分治
    4篇
  • 连通分量
    4篇
  • 数据库
    3篇
  • PATT
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

直线绕固定点旋转的公式

旋转矩阵参考文档绕(600,0)(600,0)(600,0)进行逆时针和顺时针旋转40度。import mathimport matplotlib.pyplot as pltimport numpy as npx = np.arange(600)y = -x + 600k = -1b = 600#绕(600, 0)进行旋转x0 = 600y0 = 0#逆时针旋转30度theta = math.pi/6#顺时针旋转30度theta2 = 2*math.pi - theta
原创
451阅读
0评论
0点赞
发布博客于 3 月前

767. 重构字符串

Leetcode767 题目链接解题思路贪心:每次从堆中取出两个字母,并将对应的出现次数减一。class Solution {public: string reorganizeString(string S) { //2020.11.30 unordered_map<char, int> hash; priority_queue<pair<int, char>> pq; for(auto c:
原创
102阅读
0评论
0点赞
发布博客于 3 月前

845. 数组中的最长山脉

题目连接解题思路:简单的动态规划题注意点:数组为空时需要特判class Solution {public: int longestMountain(vector<int>& A) { if(A.empty()) return 0; //两个数组,一个数组记录从左往右的最大值 //另一个数组记录从右往左的最大值 int n = A.size(); vector<int> B(n
原创
117阅读
0评论
0点赞
发布博客于 4 月前

SpringBoot集成【elasticsearch,redis,jdbc,mybatis,email】

集成Redis2020.10.24参考视频默认使用的jdk序列化,可以重写redisTemplate配置类,配置具体的序列化方式。在企业中,我们所有的pojo类都会序列化。依赖包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId&g
原创
149阅读
0评论
0点赞
发布博客于 4 月前

JVM【面经整理】

高频考点Java内存结构垃圾收集算法【标记清除,标记整理,复制】垃圾收集器【CMS,G1,ZGC】年轻代和老年代的比例和转移流程GC Roots四种引用双亲委派机制类加载过程栈溢出和堆溢出参考书籍《深入理解Java虚拟机》周志明CMS垃圾回收器参考视频优点:并发收集,低停顿。缺点:内存碎片,无法处理浮动垃圾,导致并发失败,最后STW。concurrent mark sweep 是一种以获取最短停顿时间为目标的收集器Java垃圾回收是由一个守护线程完成的。seri
原创
111阅读
0评论
0点赞
发布博客于 4 月前

仿函数和谓词

定义仿函数创建的对象,也称为函数对象,两者是一个意思。参考视频仿函数本质是个类,重载了小括号。仿函数可以作为参数传递。可以有自己的状态使用普通使用#include<bits/stdc++.h>using namespace std;class MyAdd{public: int operator()(int a, int b){ return a + b; }};int main(){ MyAdd myAdd;
原创
94阅读
0评论
0点赞
发布博客于 4 月前

python高级函数map reduce filter deque defaultdict counter json

map参考视频黑马对每个元素进行操作。需要手动转换为listlist1 = [1,2,3,4,5]def func(x): return x**2res = list(map(func, list1))print(res)reduce求累计结果,返回值为数值。累乘,累加。# 累乘 累加import functoolslist1 = [1,2,3,4,5]def func3(a, b): return a * bres3 = functools.reduce(
原创
128阅读
0评论
0点赞
发布博客于 4 月前

Python装饰器

千锋教育千锋教育视频import timedef cal_time(func): def inner(): start = time.time() func() end = time.time() print("time cost:", end-start) return inner()@cal_timedef demo(): x = 0 for i in range(10000000):
原创
119阅读
0评论
0点赞
发布博客于 4 月前

Java基础【面经整理】

抽象类参考视频抽象类是对事务的抽象,而接口是对行为的抽象。抽象类中可以有构造方法,但只供子类调用。抽象类中不一定有抽象方法。抽象类中非抽象方法可以有函数体。抽象方法可以被public, protected和private修饰。接口参考视频成员变量,格式:[public] [static] [final] 数据类型 常量名称 = 初始值;常量必须进行赋值,一旦赋值不能被修改 。常量名称完全大写,用下划线分割。抽象方法,格式:[public] [abstract] 返回值
原创
122阅读
0评论
0点赞
发布博客于 4 月前

JDBC连接Mysql数据库

黑马版导入jar包注册驱动获取数据库连接对象定义sql语句获取执行sql的对象 statement执行sql处理结果释放资源package com.bytedance.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class JDBCdemo { public static void main(String[] args)
原创
106阅读
0评论
0点赞
发布博客于 4 月前

41. 缺失的第一个正数

缺失的第一个正数解题思路类似的题有好几道,我暂且把它们叫做“交换归位”吧,最核心的是使用了两个变量,用来左右夹逼。l-表示已经收集到的连续正整数r-表示最多可能收集到的正整数在以下三种情况下,我们的最多收集r需要减小1arr[l] <= larr[l] > rarr[arr[l] - 1] == arr[l]如果当前下标加1刚好等于下标所在的值,l就加1代码如下class Solution {public: int firstMissingPositive(v
原创
120阅读
0评论
0点赞
发布博客于 5 月前

1113 矩阵快速幂

题目链接解题思路类似于数的快速幂,利用2的幂次,把AnA^nAn转换为A21+22+23+...+2kA^{2^1+2^2+2^3+...+2^k}A21+22+23+...+2k主要分为两个方法,首先实现两个矩阵相乘,然后实现矩阵的快速幂计算。注意矩阵相乘时的下标,还有初始化结果矩阵为单位矩阵。#include <algorithm>#include <array>#include <cmath>#include <deque>#inclu
原创
81阅读
0评论
1点赞
发布博客于 5 月前

golang技术分享

1、python2和python3的bytesif __name__ == '__main__': ss = 'terry0609_08\x04\x04\x04\x04' print(type(ss)) print(ss[-1]) print(ss[-2]) python3中bytes可以是任何二进制数据,文本/图片/视频/音频等等。str就是文本数据。python2中把b'abcd'视为str,对str的切片是把\x04当作1位,数字8被视为unicode即char,输出的就是
原创
143阅读
0评论
0点赞
发布博客于 6 月前

kafka基础知识

Kafka是一个分布式的、可分区的、可复制的消息系统。主要特点分布式,可扩展低延迟(毫秒级延迟)持久化…基本概念Producer - 生产者Broker - kafka服务器Consumer - 消费者Consumer Group - 消费者分组Topic - 主题Partition - 分区ISR = in-sync replicas 副本同步队列AR = assigned replicas 所有副本HW = high watermark 高水平位LEO = log
原创
81阅读
0评论
0点赞
发布博客于 6 月前

golang并发

1、同步等待组package main/*同步等待组:WaitGroup*/import ( "fmt" "sync")var wg sync.WaitGroupfunc f1(){ for i := 1; i < 10; i ++{ fmt.Println(i) } wg.Done()}func f2(){ for c :='a'; c < 'f'; c++{ fmt.Printf("%c
",c) } wg.Done()}func main(
原创
93阅读
0评论
1点赞
发布博客于 7 月前

优先队列自定义排序

优先队列package com.example.demo;/*peek()//返回队首元素poll()//返回队首元素,队首元素出队列add()//添加元素size()//返回队列元素个数isEmpty()//判断队列是否为空,为空返回true,不空返回false */import java.util.Comparator;import java.util.PriorityQueue;import java.util.Queue;public class Priori
原创
74阅读
0评论
0点赞
发布博客于 7 月前

计算器/表达式求值

京东零售部618【提前批一面】Java的常用的集合,arraylist/linkedlist/hashmap/hashset/treeset/treemaparraylist的addall方法,入参是传的啥hashmap和线程安全的hashmap线程同步关键字synchronized和volatile和retreenlock原理final关键字怎么用的,可以用在方法上吗缓存redis数据结构和设置过期时间Java的框架springboot的主要注解Java连接数据库的方式除了JDBC(我回
原创
139阅读
0评论
0点赞
发布博客于 7 月前

浙大版《Python 程序设计》题目集

代码全是用的python 3.x语法第1章-1 从键盘输入两个数,求它们的和并输出 (30分)x = int(input())y = int(input())print(x+y)第1章-2 从键盘输入三个数到a,b,c中,按公式值输出 (30分)x = input().split()print(int(x[1])**2 - 4*int(x[0])*int(x[2]))第1章-3 输出“Python语言简单易学” (10分)s = "Python语言简单易学"print(s.encod
原创
1063阅读
0评论
2点赞
发布博客于 8 月前

Spring系列【面经整理】

pom.xml<!--所有的Springboot工程都必须继承spring-boot-starter-parent--><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.1.RELEASE</version&
原创
106阅读
0评论
0点赞
发布博客于 8 月前

Java并发【面经整理】

Idea快捷键cmd + d 复制上一行cmd + x 删除行Shift + f6 重构sout = system.out.println()Psvm = public static void main(String[] args)JDKjava development kit,JDK是用于支持Java程序开发的最小环境。可以把Java程序设计语言,Java虚拟机,Java类库三部分统称为JDK。JREJava runtime environment可以把Java类库API中的J
原创
99阅读
0评论
0点赞
发布博客于 8 月前

ES基础

倒排索引拆分正排索引的字段,然后统计每个字段出现在正排中的序号。b+树index === databasetype ==== table 即将废弃document ==== rowfield === columnmapping映射 ==== 表结构NRT 接近实时shard 分片 replica 复制聚合{ "aggs":{ "city_cluster":{ "terms":{ "field":"ac
原创
97阅读
0评论
0点赞
发布博客于 8 月前

set和map和priority_queue自定义排序

set自定义排序#include <iostream>#include <string>#include <algorithm>#include <set>#include <vector>using namespace std;// set存放自定义数据类型class Student{public: Student(string name, int age){ this->name = name;
原创
139阅读
0评论
0点赞
发布博客于 8 月前

python基础编程

集合视频# 集合的应用 无序不重复# add 添加# update 添加多个# remove 删除 如果元素不存在 报错# pop 弹出首位# clear 清空# discard 删除不存在的 不报错s1 = set()s2 = {2, 4, 3}list1 = [1, 2, 3, 2, 3, 2, 3]s3 = set(list1) # 快速去重s1.add(7)s2.add(9)print(s1)print(s3)格式化输出加号只能拼接两边都是字符串的情况n
原创
106阅读
0评论
0点赞
发布博客于 8 月前

redis基础面试

redis操作brew services start redis 启动并前台运行brew services stop redis 停止服务redis-server /usr/local/etc/redis.conf 启动并后台运行mysql -uroot 本地登录brew services start mysql 前台mysql.server start 后台redis的功能redis缓存,可用来做分布式锁,支持事务,持久化,lua脚本,lru事件驱动,多集群方案。数据类型strin
原创
101阅读
0评论
0点赞
发布博客于 8 月前

go基础入门

goroot和gopathGoroot是存放go编译器的位置Gopath是存放源代码的位置。gopath下必须有三个目录,src, pkg, bin如果是从外部导入的代码,需要放在src目录下,比如$gopath/src/github.comgo面向对象封装继承多态匿名字段:只提供类型,而不写字段名的字段http服务器package mainimport "net/http"func HandleCon(w http.ResponseWriter, req *http.Re
原创
207阅读
0评论
0点赞
发布博客于 8 月前

漂流船问题

题目链接题目类型:贪心解题思路:把最重的和最轻的人放在一起,乘同一个船。但是如何保证这样可以获得最优解呢?可以利用反证法。解法1#include <iostream>#include <cstring>#include <vector>#include <algorithm>using namespace std;int main(){ vector<int> vt; int x,limit; strin
原创
192阅读
0评论
0点赞
发布博客于 8 月前

数字和为sum的方法数

牛客网题目公司:滴滴出行类型:动态规划难度:中等题意:从n个数中找出组合成m的方案数。#include <iostream>#include <cmath>#include <cstring>#include <algorithm>#include <string>#include <unordered_map&...
原创
122阅读
0评论
0点赞
发布博客于 10 月前

拼凑面额

牛客网题目公司:美团类型:搜索 记忆化递归难度:中等题意:从6个固定面值中找出凑成给定面值大小的种数,每个面值可以用无数次。可以用深度搜索,选0到n次,然后回溯。可以使用数组/map保存计算过的值,结果可能超过int所以用long long保存。版本1使用数组保存,执行时间31ms#include <iostream>#include <cmath>#in...
原创
85阅读
0评论
0点赞
发布博客于 10 月前

彩色宝石项链

牛客网题目公司:搜狐类型:滑动窗口难度:中等题意:从一个字符串中挑出包含ABCDE的最短字符串,注意字符串之间是首尾相连的。处理环形数组或者字符串最经典的做法就是展开数组成2倍的形式,然后使用滑动窗口去判断是否包含了所有的字母。#include <iostream>#include <cmath>#include <cstring>#includ...
原创
87阅读
0评论
0点赞
发布博客于 10 月前

袋鼠过河

公司:搜狐类型:贪心 动态规划难度:中等类似题:leetcode 跳跃游戏Ⅱ题意:从起点开始,每次最多可以跳k步,我们考虑从当前可跳范围内,选择一个可以跳跃的最远距离作为下一个可跳区间的起点,然后逐步更新最大可跳范围。在更新的过程中,如果到达了最大可跳边界,但是最大可跳区间没有更新,说明不可能跳到末尾去,所以直接结束。#include <iostream>#include ...
原创
88阅读
0评论
0点赞
发布博客于 10 月前

异或

题目难度:困难类型:字典树题意:数组中两两异或,找出超过m的异或和有多少个。分析:使用trie树存储每个数的每个二进制位,然后每个数在trie树中进行深度搜索。如何比较与m的大小是关键。首先树根到叶子存的都是数值的高位,所以高位时,如果树中的第k层是0,而当前遍历的数的第k位是1,m中的第k位是0,此时根据异或的结果,此节点下的所有数异或以后都会比m大。因为在高位的时候已经异或得到一个1,...
原创
302阅读
0评论
0点赞
发布博客于 10 月前

494. 目标和

题目类型:动态规划 深搜难度:中等版本1暴搜 选与不选时间复杂度O(2n)O(2^n)O(2n)class Solution {public: int n, res = 0; void dfs(int u, vector<int>&nums, long long target){ if(u==n){ if(...
原创
92阅读
0评论
0点赞
发布博客于 10 月前

链表中倒数第k个节点

题目难度:简单注意:链表可能为空,k有可能不合理或者大于链表的总长度。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(Lis...
原创
74阅读
0评论
0点赞
发布博客于 10 月前

329. 矩阵中的最长递增路径

题目类型:深搜 记忆化递归难度:困难题意:从一个二维矩阵中找到一个严格递增的路径。使用深度搜索,不需要标记,因为到当前点是需要满足比原来点数值大的,所以也不会重复遍历。然后使用记忆化递归记录最长的路径,如果已经计算过了直接返回。备注:2020.4.18字节跳动三面面试题。面试官提示我使用回溯,其实没必要,因为递增这个条件限制了不可能会重复使用某个点。class Solution {pu...
原创
102阅读
0评论
0点赞
发布博客于 10 月前

71. 简化路径

题目难度:中等类型:栈 字符串题意:把unix中的复杂路径简化为最简洁的路径。一个点号表示当前目录,两个点号上一个目录。我的思路是使用栈来存储斜杠中间的内容。这里面不仅包含文件名,同时也会包含两个点号,或者一个点号的情况。所以每次入栈以后先判断栈顶是不是点号的情况。最后将路径名和斜杠拼接起来。备注:2020.4.18号字节跳动二面面试题,当时思路不是特别清晰,面试官给了我很多提醒,晚上特意...
原创
96阅读
0评论
0点赞
发布博客于 10 月前

2020.4.15华为实习招聘笔试题第三题

很可惜,当时没做出来,写了个bug调了一个多小时,但是思路是对的。leetcode刷久了,对各种输入的处理能力不够,第一题本来很简单,也是写了一个bug把心态搞炸了。后续几乎没什么面试机会了。4月末求上天赐我一个offer吧。我真的熬不住了。题也刷了,面经也背了,卵用没有一个,offer至今为0。第三题思路使用map映射 使用拓扑排序判环#include <bits/stdc++....
原创
1013阅读
2评论
0点赞
发布博客于 10 月前

738. 单调递增的数字

题目难度:中等类型:贪心题意:遇到逆序,就将当前位减1,同时将后面的数全部置为9。循环判断检查前面是否产生了逆序。class Solution {public: int monotoneIncreasingDigits(int N) { if(N < 10) return N; deque<int> num; //...
原创
109阅读
0评论
0点赞
发布博客于 10 月前

41. 最大子数组

lintcode题目类型:数组难度:简单题意:看到子数组直接上前缀和,然后有最值问题,考虑从前往后维护一个最值。这才是通解,以前总是死记一个前缀和小于0时重新开始,现在开始走通用之路了,顶不住。class Solution {public: int maxSubArray(vector<int> &nums) { int n = nums....
原创
78阅读
0评论
0点赞
发布博客于 10 月前

44. 最小子数组

lintcode题目难度:简单类型:数组版本1class Solution {public: int minSubArray(vector<int> &nums) { int n = nums.size(); vector<int> sum(n+1, 0); for(int i = 0; i <...
原创
78阅读
0评论
0点赞
发布博客于 10 月前

749. 约翰的后花园

lintcode题目类型:枚举难度:入门版本1两重循环枚举。class Solution {public: string isBuild(int x) { bool flag = true; for(int i = 0; i <= 1000; i++){ for(int j = 0; j <= 1000; j+...
原创
56阅读
0评论
0点赞
发布博客于 10 月前

461. 无序数组K小元素

lintcode题目难度:中等类型:分治题意:求出数组第k小的数,可以使用优先队列,也可以使用快排。按照快排的思路,先寻找分割点,然后讲分割点两边的数据满足左边小于关键字,右边大于关键字,然后统计左边的数量left和k的相对大小,如果左边的数量比k大,说明第k小的数,一定在左边,所以直接求左边,反之在右边。时间复杂度:堆O(nlgn)O(nlgn)O(nlgn) 快排O(n)O(n)O(...
原创
151阅读
0评论
0点赞
发布博客于 10 月前

拍照队列

题目公司:猿辅导类型:字符串难度:1级题意:把输入的字符串按照Y字输出。注意:字符串中可能含有空格,所以如果用string读入时,需要读入一行。#include <iostream>#include <string>#include <algorithm>using namespace std;int arr[10005];int main...
原创
156阅读
0评论
0点赞
发布博客于 10 月前

万万没想到之聪明的编辑

公司:字节跳动类型:字符串难度:1级题意:把超过3个相同字符的保留为2个,把AABB型的保留位AAB类型。方法:暴力枚举时间复杂度:O(n)O(n)O(n)#include <iostream>#include <string>using namespace std;int main(){ int n; scanf("%d", &n); st...
原创
64阅读
0评论
0点赞
发布博客于 10 月前

高度最小的BST

题目类型:树难度:2题意:使用有序数组构建二叉查找树,标准模板题。注意树的定义在类之前有写,不需要自己重写。class MinimalBST {public: int buildMinimalBST(vector<int> vals) { TreeNode* root = build(vals, 0, vals.size()-1); ...
原创
62阅读
0评论
0点赞
发布博客于 10 月前

蛇形矩阵

题目难度:简单类型:二维数组题意:从左上角依次打印数字,注意左边之间的关系就行了。#include <cstdio>#include <iostream> #include <cstring>using namespace std;int dp[105][105];int main(){ int n; while(scanf("...
原创
427阅读
0评论
0点赞
发布博客于 10 月前

最小调整有序

题目难度:简单类型:数组类似题1class Rearrange {public: vector<int> findSegment(vector<int> A, int n) { int pmax = A[0], pidx = -1; for(int i = 0; i < n; i++){ ...
原创
155阅读
0评论
0点赞
发布博客于 10 月前

整数与IP地址之间的转换

题目类型:位运算难度:简单注意:IP可能超过int需要用无符号整型,并且牛客的判题系统while中的scanf必须要不等于EOF不然会出错。#include <cstdio>#include <iostream>#include <cstring>using namespace std; int main(){ unsigned int...
原创
75阅读
0评论
0点赞
发布博客于 10 月前

1184. 公交站间的距离

题目类型:数组难度:简单题意:从循环的车站中,找到从start到destination的最短路径。因为车站的总长度确定,所以要么正向走,要么逆向走,先求出来总长度,然后再与正向的相减,取最小的,就是要求的结果。class Solution {public: int distanceBetweenBusStops(vector<int>& dist, int s...
原创
44阅读
0评论
0点赞
发布博客于 10 月前

1176. 健身计划评估

题目难度:简单类型:数组题意:找到连续k天的值与lower和upper的大小,如果大于upper加1分,如果小于lower减一分。注意必须要超过k天之后才能开始计算。class Solution {public: int dietPlanPerformance(vector<int>& c, int k, int lower, int upper) { ...
原创
49阅读
0评论
0点赞
发布博客于 10 月前

1128. 等价多米诺骨牌对的数量

题目难度:简单类型:数组题意:找到所有的相同数组对。我最开始理解错了,这种相同数对最多是k*(k-1)/2, 我开始理解成了阶乘个,所以一直错。以下并不是最优解法,只是一种思路,即先排序把相同的数对放在一起,然后统计相同数对的数量。最后把相同的数对用上面的公式求一下,就是最终结果。class Solution {public: int numEquivDominoPairs(ve...
原创
38阅读
0评论
0点赞
发布博客于 10 月前

1232. 缀点成线

题目难度:简单类型:数学题意:判断一系列点是否在同一直线上。类似于直线上最多的点数leetcode149。这道题的思路是首先确定两个点的斜率,然后判断后面的点构成的斜率是否和最开始的斜率相同。class Solution {public: bool checkStraightLine(vector<vector<int>>& coor) { ...
原创
49阅读
0评论
0点赞
发布博客于 10 月前

拓扑结构相同子树

题目子结构需要完全相同,可以使用二叉树序列化成字符串之后再比较。class IdenticalTree {public: bool dfs(TreeNode* A,TreeNode* B){ if(!A || !B) return A == B; return (A->val==B->val) && dfs(A->le...
原创
111阅读
0评论
0点赞
发布博客于 10 月前

左右最值最大差

题目给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0…K],右部分A[K+1…N-1],K可以取值的范围是[0,N-2]。求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值,最大是多少?给定整数数组A和数组的大小n,请返回题目所求的答案。测试样例:[2,7,3,1,1],5返回:6版本1预处理数组的最值从左往右和从右往左时间复...
原创
55阅读
0评论
0点赞
发布博客于 10 月前

最短排序

题目对于一个无序数组A,请设计一个算法,求出需要排序的最短子数组的长度。给定一个整数数组A及它的大小n,请返回最短子数组的长度。[1,5,3,4,2,6,7],74class ShortSubsequence {public: int findShortest(vector<int> A, int n) { //正向 更新最大值 同时记录最大...
原创
58阅读
0评论
0点赞
发布博客于 10 月前

会议室 II

难度:中等类型:数组题意:找到最少使用的会议室数,可以用上下车的思维来考虑。会议室的开始时间为上车,会议室的结束时间为下车,我们需要统计在车上的人的最大数量。按照时间的先后顺序排序,注意如果在同一个时刻既有上车又有下车的人,先下后上,腾出最大的空间。随意排序的时候加入了第二个关键字,就是为了防止上车的先算。class Solution {public: int minMeeting...
原创
131阅读
0评论
0点赞
发布博客于 11 月前

113. 路径总和 II

题目:113. Path Sum II难度:中等类型:树 深搜星级:五星推荐版本12020.3.20精简版class Solution {public: vector<vector<int>> res; vector<int> temp; vector<vector<int>> pathSum(Tre...
原创
57阅读
0评论
0点赞
发布博客于 1 年前

218. 天际线问题

题目:218. The Skyline Problem难度:困难类型:扫描线 大根堆 平衡二叉树星级:五星推荐class Solution {public: vector<vector<int>> getSkyline(vector<vector<int>>& buildings) { //注意重叠 建筑的左...
原创
79阅读
0评论
0点赞
发布博客于 1 年前

149. 直线上最多的点数

题目:149. Max Points on a Line类型:数学 斜率 最大公约数难度:困难星级:五星推荐题意:找到一条直线上最多的点,注意点有可能有重叠,斜率可能为0和无穷大。推荐:花花酱视频讲解class Solution {public: int maxPoints(vector<vector<int>>& points) { ...
原创
79阅读
0评论
0点赞
发布博客于 1 年前

93. 复原IP地址

题目:93. Restore IP Addresses难度:中等类型:深搜 字符串星级:五星推荐题意:把一个字符串恢复成所有可能的IP地址,注意0不能作为每段的开头。class Solution {public: vector<string> res; vector<int> temp; int n; vector<stri...
原创
75阅读
0评论
0点赞
发布博客于 1 年前

42. 接雨水

题目:42. Trapping Rain Water难度:困难类型:双指针 动态规划星级:五星推荐题意:柱子的高度是由两边的最小值决定的,统计两边的最值,然后取最小的高度与原高度相减。版本1class Solution {public: int trap(vector<int>& h) { int n = h.size()...
原创
58阅读
0评论
0点赞
发布博客于 1 年前

1109. 航班预订统计

题目类型:差分数组难度:中等class Solution {public: int dp[20005]; vector<int> corpFlightBookings(vector<vector<int>>& book, int n) { //差分数组 vector<int> ...
原创
57阅读
0评论
0点赞
发布博客于 1 年前

顺时针打印矩阵

题目类型:数组 模拟注意:cnt来统计,而且在四个操作中也要加,不然会出错。class Printer {public: vector<int> clockwisePrint(vector<vector<int> > matrix, int m, int n) { if(!m) return {}; if(m==1...
原创
57阅读
0评论
0点赞
发布博客于 1 年前

54. 螺旋矩阵

题目类型:数组 模拟难度:中等class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { int m = matrix.size(); if(!m) return {}; int n = mat...
原创
72阅读
0评论
0点赞
发布博客于 1 年前

最后一个字符

题目类型:字符串注意:使用fgets比较快#include <bits/stdc++.h>using namespace std;const int N = 1e6+5;int dp[256];int main(){ char str[N]; int k; scanf("%d", &k); getchar(); while(...
原创
54阅读
0评论
0点赞
发布博客于 1 年前

772. 基本计算器 III

题目难度:困难类型:递归 栈class Solution {public: int calculate(string s) { int j = 0; for(int i = 0; i < s.size(); ){ while(i < s.size() && s[i]==' ') i++; ...
原创
220阅读
0评论
0点赞
发布博客于 1 年前

227. 基本计算器 II

题目类型:双栈难度:中等class Solution {public: int calculate(string s) { //yxc 2020.3.29 //乘除法先算 stack<char> op; stack<int> num; s +="+0"; //处理边界 ...
原创
94阅读
0评论
0点赞
发布博客于 1 年前

224. 基本计算器

题目难度:困难类型:递归 栈class Solution {public: int calculate(string s) { //递归 2020.3.29 先把空格搞定 int j = 0; for(int i = 0; i < s.size(); ){ while(i < s.size() &a...
原创
95阅读
0评论
0点赞
发布博客于 1 年前

下一个较大元素Ⅱ

题目类型:单调双栈 二分题意:找到大于当前数的最小值。版本1set有序二分查找34msclass NextElement {public: vector<int> findNext(vector<int> A, int n) { vector<int> res(n, -1); set<int> st...
原创
63阅读
0评论
0点赞
发布博客于 1 年前

452. 用最少数量的箭引爆气球

题目类型:贪心难度:中等题意:按照end从小到大排序 如果start > R更新R作为本次射箭的最右边界 R以内的所有气球都可以引爆class Solution {public: int findMinArrowShots(vector<vector<int>>& points) { //2020.3.28 贪心 ...
原创
57阅读
0评论
0点赞
发布博客于 1 年前

435. 无重叠区间

题目类型:贪心难度:中等题意:删除最少的重叠区间。对于[L, R]区间,按照R从小到大排序。class Solution {public: int eraseOverlapIntervals(vector<vector<int>>& intervals) { if(intervals.empty()) return 0; ...
原创
76阅读
0评论
0点赞
发布博客于 1 年前

820. 单词的压缩编码

题目类型:字典树难度:中等题意:快速找出所有后缀。class Solution {public: int minimumLengthEncoding(vector<string>& words) { //32020.3.28 美学暴力 待字典树优化 unordered_set<string> good(words.b...
原创
105阅读
0评论
0点赞
发布博客于 1 年前

回文串

题目公司:蘑菇街类型:字符串 模拟题意:添加一个字符是否可以构成回文串。类似题:leetcode 680. 验证回文字符串 Ⅱ#include <bits/stdc++.h>using namespace std;int main(){ string str; while(cin>>str){ int n = str.size(); //既然增加一...
原创
49阅读
0评论
0点赞
发布博客于 1 年前

直方图内最大矩形

题目公司:美团类型:单调栈题意:找到一个数组中形成的最大矩形。leetcode84题原题。class MaxInnerRec {public: int countArea(vector<int> A, int n) { //单调栈 stack<int> stk; stk.push(-1); i...
原创
48阅读
0评论
0点赞
发布博客于 1 年前

二分查找

题目类型:二分搜索题意:从有序数组中查找某个元素第一次出现的位置class BinarySearch {public: int getPos(vector<int> A, int n, int val) { int l = 0, r = n-1; while(l < r){ int mid = (l + r)...
原创
43阅读
0评论
0点赞
发布博客于 1 年前

最长公共子序列

题目类型:动态规划题意:找到最长公共子序列的长度,不要求连续。class LCS {public: int findLCS(string A, int n, string B, int m) { vector<vector<int>> dp(n+1, vector<int>(m+1)); int res = 0;...
原创
57阅读
0评论
0点赞
发布博客于 1 年前

最长公共子串

题目类型:动态规划题意:求连续的最长公共子串class LongestSubstring {public: int findLongest(string A, int n, string B, int m) { int res = 0; vector<vector<int>> dp(n+1, vector<int>...
原创
47阅读
0评论
0点赞
发布博客于 1 年前

上台阶

题目公司:京东类型:动态规划 斐波那契数列题意:注意开始位置是台阶1class GoUpstairs {public: int f[103]; const int M = 1e9+7; int countWays(int n) { memset(f, 0, sizeof f); f[1] = 0; f[2] = 1;...
原创
112阅读
0评论
0点赞
发布博客于 1 年前

整数加法

题目公司:美团类型:字符串模拟题意:模拟字符串加法,注意非法输入要输出error,首字母不用大写,题目跟样例不一致。#include <bits/stdc++.h>using namespace std;int main(){ string a, b; while(cin>>a>>b){ bool ok = true; for(int i...
原创
107阅读
0评论
0点赞
发布博客于 1 年前

末尾0的个数

题目类型:数学规律公司:滴滴题意:找到n!n!n!后有多少个0,实际是计算可以被5除多少次,因为10=2*5,1个零就有1个5。#include <bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; int res = 0; while(n){ res += n/5; n /=...
原创
73阅读
0评论
0点赞
发布博客于 1 年前

整数反转

题目公司:迅雷类型:数学规律题意:把一个32位的有符号整数反转。注意虽然输入保证是32位的,但是反转过后就可能溢出,所以直接用longlong存。这道题是leetcode上的原题。#include <bits/stdc++.h>using namespace std;const int N = 1e5+5;int a[N];int main(){ long long ...
原创
65阅读
0评论
0点赞
发布博客于 1 年前

第二大的数

题目公司:搜狐类型:数组题意:找到第二大的数。可以扫描两次,第一次找第一大的,第二次找第二大的。注意去重。#include <bits/stdc++.h>using namespace std;const int N = 1e5+5;int a[N];int main(){ int n; scanf("%d", &n); for(int i = 0; i ...
原创
55阅读
1评论
0点赞
发布博客于 1 年前

DNA序列

题目公司:爱奇艺类型:字符串 连续子串题意:找到一个字符串中所有ACGT可变长度的全排列最小不满足的情况。使用set去重和暴力枚举。#include <bits/stdc++.h>using namespace std;int main(){ string str; cin>>str; //判断子串的个数 int n = str.size(); f...
原创
160阅读
0评论
0点赞
发布博客于 1 年前

大整数相乘

牛客网题目公司:拼多多类型:字符串模拟题意:模拟计算大整数相乘。注意去掉前导零。#include <bits/stdc++.h>using namespace std;//const int N = 1e5+5;//int a[N];int main(){ string a, b; cin>>a>>b; int m = a.size(), ...
原创
91阅读
0评论
0点赞
发布博客于 1 年前

最大乘积

题目公司:拼多多类型:数组题意:注意时间必须是线性的,所以遍历三次从数组中找出3个数使乘积最大,注意有负数和0,所以不仅要算正数最大的,也要算负数最大的。这道题的坑应该有很多,虽然通过了这道题,但是代码不是完备的,还可以被特殊的数据攻击。如果时间充裕的大佬可以自行完备。下面我提供部分思路。#include <bits/stdc++.h>using namespace std;...
原创
40阅读
0评论
0点赞
发布博客于 1 年前

字符串价值

题目公司:爱奇艺类型:优先队列题意:统计字符出现的频率,然后删掉k个字符使乘积最小,因此要删掉频次最高的字符。使用优先队列来统计频次最高的,每次减一。#include <bits/stdc++.h>using namespace std;const int N = 27;int a[N];int main(){ int n; string s; int k; c...
原创
58阅读
0评论
0点赞
发布博客于 1 年前

排序

题目公司:爱奇艺类型:数组排序题意:计算升序后,不在原位置的数的个数。#include <bits/stdc++.h>using namespace std;const int N = 55;int a[N], b[N];int main(){ int n; scanf("%d", &n); for(int i = 0; i < n; i++){ ...
原创
37阅读
0评论
0点赞
发布博客于 1 年前

408. 有效单词缩写

题目类型:字符串难度:简单题目:判断一个字符串是否是另一个字符串的有效缩写。注意缩写中出现0就是错的。class Solution {public: bool validWordAbbreviation(string word, string abbr) { int t = 0, i, j; bool ok = true; for(...
原创
173阅读
0评论
0点赞
发布博客于 1 年前

624. 数组列表中的最大距离

题目难度:简单类型:数组题意:从不同行中找到最大差值,首先找到最大值和最小值,然后再用不同行的去求差值。class Solution {public: int maxDistance(vector<vector<int>>& arrays) { //先找到最大最小值的行 int mini=0, maxi=0, min...
原创
77阅读
0评论
0点赞
发布博客于 1 年前

1033. 移动石子直到连续

题目类型:数学规律难度:简单题意:先排序,由于只能移动两边的石头,所以可以找一下规律。class Solution {public: vector<int> numMovesStones(int a, int b, int c) { int x = min(min(a,b), c); int z = max(max(a,b), c);...
原创
66阅读
0评论
0点赞
发布博客于 1 年前

1056. 易混淆数

题目类型:模拟难度:简单题意:旋转180度后判断是否产生了一个有效的新数,180度不仅从数字本身,串也要反转。class Solution {public: bool confusingNumber(int N) { int a[10]={0}, b[10]={0}; int ord = 0, k = 0, nw = 0; do{...
原创
56阅读
0评论
0点赞
发布博客于 1 年前

716. 最大栈

题目类型:双栈难度:简单题意:使用两个栈,一个存最大值,一个存原值。class MaxStack {public: /** initialize your data structure here. */ MaxStack() { } stack<int> buf; stack<int> stk, max_stk; ...
原创
117阅读
0评论
0点赞
发布博客于 1 年前

字符串包含

题目公司:快手类型:字符串题意:直接在两个字符串中查找是否有子串#include <bits/stdc++.h>using namespace std;int main(){ string a, b; while(cin>>a>>b){ if(a.find(b)!= string::npos|| b.find(a)!= string::np...
原创
51阅读
0评论
0点赞
发布博客于 1 年前

写一段程序判断IP字符串是否属于内网IP

题目公司:类型:模拟#include <bits/stdc++.h>using namespace std;int main(){ int a, b, c, d; scanf("%d.%d.%d.%d", &a, &b, &c, &d); if(a==10 ||(a==192 && b==168) ||(a==172&a...
原创
110阅读
0评论
0点赞
发布博客于 1 年前

求表达式

公司:哔哩哔哩类型:数学题目思路:暴力枚举计算n!n!n!的方式,即除5统计。#include <bits/stdc++.h>using namespace std;//const int N = 1e5+5;//int arr[N];int main(){ int n; int res = 0; scanf("%d", &n); for(int i =...
原创
77阅读
0评论
0点赞
发布博客于 1 年前

翻转链表

公司:哔哩哔哩类型:链表模拟题目#include <bits/stdc++.h>using namespace std;const int N = 1e5+5;int arr[N];int main(){ int n, x, i = 0; char c; while(scanf("%d", &x)){ c = getchar(); arr[i++] ...
原创
41阅读
0评论
0点赞
发布博客于 1 年前

种花

公司:美团类型:贪心题目题解:参考#include <bits/stdc++.h>using namespace std;const int N = 1e5+5;int arr[N];int main(){ int n, k; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%d", &am...
原创
90阅读
0评论
0点赞
发布博客于 1 年前

最长全1串

公司:美团类型:滑动窗口题目题意:从左往右统计改变已经使用0转换为1的个数,超过k个时就要把左指针往右移动,直到转换的次数小于等于k#include <bits/stdc++.h>using namespace std;const int N = 3e5+5;int arr[N];int main(){ int n, k; scanf("%d%d", &n,...
原创
58阅读
0评论
0点赞
发布博客于 1 年前

外卖满减

公司:美团类型:01背包题目题意:大于等于x的最小数//外卖满减#include <bits/stdc++.h>using namespace std;const int N = 103;int p[N];int dp[N*N];int main(){ //01背包问题 int n, x; scanf("%d%d", &n, &x); in...
原创
224阅读
0评论
0点赞
发布博客于 1 年前

考试策略

公司:美团类型:01背包题目题意:01背包模板题#include <bits/stdc++.h>using namespace std;const int N = 123;int p[N], a[N], q[N], b[N];int dp[N];int main(){ //01背包问题 int n; scanf("%d", &n); for(int ...
原创
172阅读
0评论
0点赞
发布博客于 1 年前

1065 最小正子段和

前缀和题目排序是个好东西最快是否可以优化到O(n)O(n)O(n)类似题目思路:统计前缀和,然后找到前缀和中右边比它大但是大的程度最小的。#include <iostream>#include <set>#include <algorithm>using namespace std;typedef long long ll;const in...
原创
64阅读
0评论
0点赞
发布博客于 1 年前