- 博客(50)
- 问答 (1)
- 收藏
- 关注
原创 常见面试算法总结
快排#pragma once#include <vector>using namespace std;static void exchnage_number(vector<int> &nums, int x, int y) { int tmp = nums[x]; nums[x] = nums[y]; nums[y] = tmp;}static int partition(vector<int> &nums, int begin, i
2022-09-11 11:54:26 283
原创 通用Makefile
Include guideCC = g++CPP = g++MAKE = makeCFLAGS = -m64CURRENT_DIR = .PARENT_DIR = ..#third pathTHIRD_DIR = $(CURRENT_DIR)/ThirdSRC_PATH = $(CURRENT_DIR)/src##shared lib pathPROJ_LIB_DIR = $(CURRENT_DIR)/libs/Linux_x64 ##static lib pathPROJ_S
2022-05-26 01:01:32 307 1
原创 面试复习知识点
进程 ⭐⭐⭐⭐进程的本质就是操作系统执行的一个程序。与每个进程相关的是地址空间(address space),这是从某个最小值的存储位置(通常是零)到某个最大值的存储位置的列表。在这个地址空间中,进程可以进行读写操作。地址空间中存放有可执行程序,程序所需要的数据和它的栈。与每个进程相关的还有资源集,通常包括寄存器(registers)(寄存器一般包括程序计数器(program counter)和堆栈指针(stack pointer))、打开文件的清单、突发的报警、有关的进程清单和其他需要执行程序的信息。
2022-05-23 11:01:38 206
原创 LeetCode 每日一题 2022 0414— 模拟 和 多元BFS
第一题 模拟https://leetcode-cn.com/problems/richest-customer-wealth/思路遍历每一行,求和更新最大值返回 int maximumWealth(vector<vector<int>>& accounts) { int ret = INT_MIN; for (auto &person : accounts) { int sum = 0; for (int n : person
2022-04-15 01:17:01 320 1
原创 LeetCode 每一日一题 2022-04-12
从今天起做一个自律的人,为了明天做一个懒人!思路:打表找规律0 | 11 | 10 2 | 81 = 9 * 93 | 648 = 9 * 9 * 8…类似于高中的排列组合,第一个数字有 9 种可能,每次的可能性依次减少1,根据简单打表可以发现这个规律。需要注意对于0 和 1的特殊情况class Solution {public: int countNumbersWithUniqueDigits(int n) { if(n == 0){
2022-04-12 00:46:46 280
原创 下阶段学习计划
人文:(每日约30min)阅读《亲密关系》阅读《月球的背面》计划游历整个苏州的名胜古迹外语:(每日约30min)每周上外语课两节每日固定英文学习专业:Coding:(30% 每日约40min - 60min)leetcode 每日一题 + 专项学习数学:(30% 每日约 60 min) 应用线性代数 有问题细看 搭建必要开发环境 -- 输出博客 音视频:(30% 每日约 60 min) 《安卓音视频》 -- 输出博客如非必要每日约 3 hour, 加班时可相对减少
2022-04-11 18:13:16 143
原创 随笔——封装最小堆和最大堆
#pragma once#include <vector>using namespace std;template <typename T>class Oheap {public: typedef enum Heap_type { MAX = 0, MIN, } HEAP_TYPE_E; Oheap(HEAP_TYPE_E type): mType(type){ }; Oheap(vector<T> data, HEAP_TYPE_E
2022-02-21 01:49:11 752
原创 LeetCode 每周刷题总结 0801 - 0808(每日一题)
0801 lt 1337 矩阵中战斗力最弱的 K 行https://leetcode-cn.com/problems/the-k-weakest-rows-in-a-matrix/分析:1. 对每一行进行统计1的个数2. 根据行号和1的个数进行排序时间复杂度:O(n*n + nlogn + k) 即一次遍历和一次排序 struct Node{ int id; int val; }; vector<int> kWeakes
2022-01-26 01:56:16 346
原创 流媒体学习 06-17
MediaCodec首先,我们先向codec请求一个空的输入buffer,然后将它填满数据再交给codec处理。codec使用它的数据然后将它转换到一个空的buffer中去,最后我们会得到一个填满数据的输出buffer,消费这些数据然后将它归还给codec。codec可以处理三种数据ByteBuffers 用来传递数据给 编解码器Surface 可以用来提升原始视频数据的性能,因为省去了到ByteBuffers的转换所以效率高,但是我们不能直接操作原始的视频数据,但是我们可以使用ImageRea
2021-06-17 10:24:33 171
原创 我的编码成长记录- 二分 & 位运算
#include <vector>#include <stack>#include <algorithm>#include <iostream>using namespace std;/* ================= common function ============================ */void PrintVectorInt(vector<int> &nums) { for (int x
2021-06-10 15:29:00 174
原创 重拾向量
向量1.一个向量包含了两个信息,一个是方向一个是长度,方向指的是从原点出发到向量所标记点的方向;长度指的是,该点到原点的距离。我把一个一个的向量看作空间的一个点和原点的联系2.线性空间:坐标和坐标之间的距离是等距的,比如笛卡尔坐标系3.线性变化:经过变换的空间,坐标之间的点仍然是等距的,且原点不变4.任何向量何以看作是基向量的缩放这里好像引入了向量的加法5.给你两个不共线的向量,可以描述整个二维平面6.线性相关和线性无关:二维:相关-> a = kb (a,b共线)如 a =
2021-06-10 10:51:35 132
原创 流媒体学习 06-10 总结
Linuxpipe & select & get_fdlinux的管道是在pipefs上实现的,pipefs实现见linux pipe文件系统(pipefs)pipe用于创建管道,并将代表管道读端和写端的打开文件描述符分别放入fildes[0],fildes[1]输出参数中,里面放的应该是文件描述符https://blog.csdn.net/morphad/article/details/9219843https://blog.csdn.net/morphad/article/de
2021-06-10 10:30:00 169
原创 流媒体学习 06-08 总结
安卓篇Looper + Handler消息机制可以认为是一种“多线程”的编程模式, 就像我最喜欢再C里面用的异步队列在线程中进行通信。ALooper:looper一般与一个线程对应,要么在已有的线程上启动,要么新建一个线程启动。looper主要负责消息的派发和提供线程环境用于消息的执行。 ( 类比消息接收线程, 一旦队列不为空就处理)AHandler:handler中主要定义了onMessageReceived这一纯虚方法,要求子类实现。looper消息派发时会回调这个方法,handler子类在该
2021-06-08 10:22:38 177
原创 流媒体学习 06-07 总结
因为设计到了很多安装知识,这部分主要偏向安卓智能指针Android 中封装了sp<> 强指针,wp<>弱指针的操作。sp<> -------- shared_ptrwp<> ------- weaked_ptrGit 配置流程git config --global user.name “songxufei”git config --global user.email “songxufei@oppo.com”ssh-keygen -.
2021-06-08 09:51:43 144
原创 Webrtc的修行之路6月3日总结
EglBaseEGL 是连接 OpenGL/GLES API 和底层系统 window system(或者叫做“操作系统的窗口系统”)的桥梁(抽象层),它负责上下文管理、窗口/缓冲区绑定、渲染同步(上层绘制 API 和下层渲染 API),让我们可以利用 OpenGL/GLES 实现高性能、硬件加速的 2D/3D 图形开发。https://www.cnblogs.com/elesos/p/9509691.htmlAudioDeviceModule该接口用于webrtc的底层音频控制接口,不同的平台需要
2021-06-07 10:39:56 192 1
原创 Gn 学习
边学边用边记录config: Defines a configuration object.Configuration objects can be applied to targets and specify sets of compilerflags, includes, defines, etc. They provide a way to conveniently group setsof this configuration information.source: https://gn.
2021-05-10 21:23:27 360
原创 Jni踩过的坑
函数不能重载,只能用名字区分@CallByNative(“接口名”) 在使用java interface时想要回调上来是,需要保证接口名和这个声明一致,否则会造成jni不能找到该类。
2021-05-06 11:58:24 242
原创 状态机的深入理解
#include "tinyfsm.hpp"#include <iostream>class Idle;class End;class Error;class Initialized;class Prepared;class Started;class Stoped;class Completed;class Paused;#define EVENT_CODE_BASE 0#define EVENT_SET_DATA_SOURCE EVENT_CODE_B
2021-04-25 10:59:59 5580 1
原创 Http学习笔记
HTTP/HTTPS协议的介绍HTTP协议的基本概念HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。HTTP是无状态:HTTP协议是无状态协议
2021-02-18 18:32:55 880
原创 leetcode春节刷题笔记 持续更新~
1208. 尽可能使字符串相等label 滑动窗口 && 前缀和与二分https://leetcode-cn.com/problems/get-equal-substrings-within-budget/solution/jin-ke-neng-shi-zi-fu-chuan-xiang-deng-b-higz/
2021-02-10 23:39:19 113
原创 Actor相关文献——搭建后端高并发服务
入门了解https://www.jianshu.com/p/d803e2a7de8ehttps://zhuanlan.zhihu.com/p/38316745https://zhuanlan.zhihu.com/p/38303741Java / scala 版本 包含介绍和API文档https://doc.akka.io/docs/akka/current/typed/guide/index.htmlC++版开源代码地址2020年极为活跃https://github.com/actor
2021-01-14 23:51:55 124 1
原创 关于STL的学习
priority_queue~ 可以用来构建最小堆,差点自己写#include <vector>#include <algorithm>#include <stack>#include <queue>#include <functional>#include <unordered_map>#include <iostream>#include <map>using namespace std
2021-01-05 00:16:55 106
原创 随笔:温故而知新
有限状态机又称有限状态自动机,可以理解成在不通状态下直接的相互转换,从而避免复杂的代码处理逻辑,聚个例子,游戏中角色不同的状态可以使用不同的技能。参考博文:https://edu.csdn.net/course/detail/1566?utm_medium=distribute.pc_relevant_t0.none-task-course-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_re
2021-01-04 14:32:29 141
原创 libwebsocket 编译mini demo时遇到require lws_config
记录一个今天遇到的问题,本来想编译libwebsocket的demo来进行但是发现编译时报错lws_config后来在github 的Issue贴里面发现最开始安装的过程有问题,正常步骤cmakemake && sudo make installadd the line /usr/local/lib to /etc/ld.so.conf and run ldconfig(这个步骤只有cent os需要, ubuntu不需要)然后就可以去demo下面编译你向执行的代码了...
2021-01-03 17:21:24 423 1
原创 夜刷:平衡二叉树的基本操作
思路:用二叉树维护一个滑动窗口用最值来剪枝主要涉及平衡二叉树删除 插入 查找,没有做平衡旋转操作,这道题目的用例可能没有考察这方面的性能class Solution {public: typedef struct NODE { struct NODE* left; struct NODE* right; int val; NODE(int _val) :left(NULL), right(NULL), val(_val) { } }NODE; NODE* head ..
2020-12-17 02:05:51 189
原创 WebSocket的调研分析
简介本文档编写目的,是为了在现有会控服务http信令的基础上,为长连接功能的加入提供一个探索和初步设计思路。WebSocket & Tcp Socket2.1 WebSocket介绍概述:WebSocket同HTTP一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的。WebSocket在建立握手时,数据是通过HTTP/1.1(注HTTP1.1相比HTTP增加了KeepAlive)传输的,准确的将是使用了HTTP Upgrade来将协议更改为websocket,但是建立之.
2020-12-16 00:07:42 844 1
原创 十大排序
#include #include using namespace std;vector<vector> test_dat = {{ 9, 9, 2, 41, 4, 6, 7, 4, 1, 0 },{123, 3213, 412, 4, 456, 6, 113, 87, 85},{1, 3, 4, 5, 6, 12, 12, 34, 100},{12, 65, 65, 12,95, 78, 13, 52, 53},{98, 72, 85, 654, 83, 16, 48, 45,
2020-10-10 17:22:09 187 1
转载 spring boot issue 库
Postman图片上传用法以及Required request part ‘file’ is not present的解决方法https://blog.csdn.net/qq_37495786/article/details/83860110
2020-05-27 01:21:08 258
原创 C++11线程学习(1)—— 创建+分离+分配+线程ID
1, 创建一个线程1.1 可以通过函数指针创建#include <thread>#include <iostream>static void worker1(){ for (int i = 0; i < 10; ++i) { std::cout << "worker " << i << std::endl; }}int main() { std::thread t1 = std::thread(worker1
2020-05-26 01:46:39 1228 1
原创 leetcode日记
查询无效交易我花了一段时间在思考这道题目,想要找到一个较为高效的 分享一些我的思考吧。这道题目有三个条件 人名,地点以及时间。从维度上来看,是3维的,我是把它想做了一个三维空间。我们要求的就是相同人名,不用地点近似时间,那么问题就来了,我们需要降低维度,只看相同人名下的空间,即二维空间。问题是求城市这一维度不同,时间这一维度相近似的解(差60)。我本来是想用滑动窗口在时间维度上进行遍历,...
2020-03-04 23:51:38 254
原创 数据结构: 树(一)
树是最基本的一种数据结构,作为一个程序员我打算花几篇文章来谈一下我对树的理解,希望对自己学的东西进行一个总结和实践。 那么我打算线从树的基本机构开始讲起,这篇文章我会对一般的树和表达式树进行讲解,(表达式树是所谓分析树的一个小例子,...
2020-02-25 03:16:05 1101
原创 搜索&动态规划
今天我想讲解一下平常算法用到的搜索和DP问题,也是对现阶段学习的一个总结。之前和同事聊天,有人说DP问题不好解决总是找不到动态规划方程。其实很多DP问题可以通过搜索来解决,很多搜索的问题也可以转换成DP问题去求解。二者又很多相识处。搜索从语义上讲,搜索指的是当你不知道答案的时候,不断的向下尝试,直到最后能求得结果。在搜索过程中,我们可能会失败,也就是意味着我们要从失败的地方重新搜索,也就...
2020-02-11 21:52:06 1447 2
原创 [leetcode 日记]寻找两个有序数组的中位数 - 分治&搜索
今天总结一下前几天写的这一道搜索相关的题目:自己最开始的思路:把这两个数组(假设A,B)分割,分割成A => A[0] ~ A[i] A[i] ~ A[n - i] 且 (0 <= i < n, n == A.size() )B => B[0] ~ A[j] A[j] ~ A[n - j] 且 (0 <= j ...
2020-02-01 16:11:41 158
原创 字典树 + 并查集 + 滑动窗口 + 优先队列 demo
统计一段时间内(500)单词出现的频率单词最长为10void init();初始化函数void searchWord(int tsec, char str[], int num);在tsec时刻,搜索了某一个单词str, 它的频率是numvoid banWord(int tsec, char str[]);在tsec时刻,ban到了单词str,在以后的rank中不会再出现strvo...
2020-01-15 22:35:07 212
原创 Leetcode 摆动排序 II 快排的灵活使用
分析: 题意很简单,让偶数位的数字大于其左右两边的数字,但是有一个要求就是 时间复杂度为O(n) 空间复杂度为O(1)。 这意味这我们必须使用一个原地算法。 同时想要使他们有序,最简单的办法就是让他们的奇数位上的数是前一半的数字,偶数位上的数字为后一半的数字。这时候的第一反应就是快速排序,我们知道,快速排序的核心思想就是把一个数组分为两半一半小于一个数,另一半大于一个数,然后继续递归去求解,...
2020-01-09 23:35:17 212
原创 LeetCode 基本计算器 II 栈的应用
思路很简单,遇到数字直接进栈,遇到运算符也进栈,但是如果前面的运算符大于或者等于当前运算符就会弹出当前的栈顶,直到运算符栈为空或者栈顶运算符大于自己的优先级。写法比较中规中矩,有什么写的不好的地方欢迎指教。//用于获得运算符优先级 int getCode(char c){ if(c == '+') return 0; if(c == '-') retu...
2020-01-02 00:31:58 194
原创 LeetCode LRU 缓存机制
此时此刻我比较懒。。。。双向链表 + hashclass LRUCache {public: struct Node{ Node* front; Node* next; int val; int key; Node(int _v, int _k):val(_v),key(_k), front(NULL),...
2019-12-28 23:50:55 172
原创 LeetCode Friend Circles DFS&并查集
这道题目是关于邻接矩阵下图的搜索的,常见的算法是深度优先,广度优先还有拓扑排序。这道题目我使用的深度优先进行的实现: void searchGraph(vector<vector<int>>& M, vector<bool>& markTable, int studentId){ markTable[studentId] ...
2019-12-28 23:46:21 176
原创 最长回文子串 LeetCode
这道题目 我思考了很久也查了一下网上的一些思路,很多人是在说这是一道动态规划的题目,思路呢就是 i 到 j 之间是不是回文数字,要看 i + 1 到 j -1 是不是回文字符串。这样的思路固然可是,但是这个就像堆积木,你要从1 和 2 一点点堆到 3 到4 以至于跟高来求得答案。(我就不写源码了,比较懒)还看到了一个Manacher法的blog,这个说的是在每个字符前后加#号,然后又用了临时数组...
2019-11-30 00:49:19 156
空空如也
webrtc中quic协议引入
2021-05-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人