SF
吴尼玛的技术后花园
吴尼玛的技术后花园
注册登录
关注博客
注册登录
主页
关于
RSS
每日一题——最小花费爬楼梯
吴尼玛
2023-08-08
阅读 2 分钟
413
给定一个整数数组 cost ,其中 cost[i] 是从楼梯第i 个台阶向上爬需要支付的费用,下标从0开始。一旦你支付此费用,即可选择向上爬一个或者两个台阶。
每日一题—— 数组中出现次数超过一半的数字
吴尼玛
2023-08-07
阅读 1 分钟
451
给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。
每日一题——两数之和
吴尼玛
2023-08-06
阅读 2 分钟
412
给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。(注:返回的数组下标从1开始算起,保证target一定可以由数组里面2个数字相加得到)
每日一题——跳台阶
吴尼玛
2023-08-05
阅读 1 分钟
408
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。数据范围:1≤n≤40要求:时间复杂度:O(n) ,空间复杂度: O(1)示例1 {代码...} 示例2 {代码...} 思路一只青蛙一次可以跳1阶或2阶,直到跳到第n阶,也可以看成这只青蛙从n阶往下跳,到0阶,...
每日一题——有效括号序列
吴尼玛
2023-08-04
阅读 2 分钟
400
给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列。括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。
每日一题——包含min函数的栈
吴尼玛
2023-08-03
阅读 2 分钟
333
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop、top 和 min 函数操作时,栈中一定有元素。
每日一题——用两个栈实现队列
吴尼玛
2023-08-02
阅读 1 分钟
263
用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。
每日一题——二叉树的遍历
吴尼玛
2023-08-01
阅读 2 分钟
266
二叉树的前序遍历就是按照“根左右”(中序是“左根右”,后序是“左右根”)的顺序访问其所有节点。可以使用递归的方法:对每个子树的访问,可以看成对于上一级树的子问题,终止条件是节点为空。
每日一题——旋转数组的最小数字
吴尼玛
2023-07-31
阅读 1 分钟
334
有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。
每日一题——二分查找
吴尼玛
2023-07-30
阅读 1 分钟
235
给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1
每日一题——判断一个链表是否为回文结构
吴尼玛
2023-07-29
阅读 3 分钟
871
给定一个链表,请判断该链表是否为回文结构。回文是指该字符串正序逆序完全一致。数据范围: 链表节点数 0≤n≤\(10^5\) ,链表中每个节点的值满足 ∣val∣≤\(10^7\)
每日一题——有序链表去重
吴尼玛
2023-07-28
阅读 1 分钟
221
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次。例如:给出的链表为1→1→2,返回1→2。给出的链表为1→1→2→3→3,返回1→2→3。
每日一题——两个链表的第一个公共结点
吴尼玛
2023-07-27
阅读 2 分钟
219
输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)
每日一题——链表中倒数最后k个结点
吴尼玛
2023-07-26
阅读 2 分钟
213
题目输入一个长度为 n 的链表,设链表中的元素的值为 a~i~ ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。数据范围:0≤n≤$\(10^5\),0≤\(a_i\)≤1\(0^9\),0≤k≤\(10^9\)要求:空间复杂度 O(n),时间复杂度 O(n)进阶:空间复杂度 O(1),时间复杂度 O(n)例如输入{1,2,3,4,5},2时,对应的...
每日一题——判断链表中是否有环
吴尼玛
2023-07-25
阅读 3 分钟
370
数据范围:链表长度 0≤n≤10000,链表中任意节点的值满足 ∣val∣<=100000要求:空间复杂度 O(1),时间复杂度 O(n)
每日一题——合并两个排序的链表
吴尼玛
2023-07-24
阅读 4 分钟
274
输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围:0≤n≤1000,−1000≤节点值≤1000要求:空间复杂度 O(1),时间复杂度 O(n)
每日一题——反转链表
吴尼玛
2023-07-23
阅读 1 分钟
300
题目给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。数据范围:0≤n≤1000要求:空间复杂度 O(1) ,时间复杂度 O(n) 。如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。以上转换过程如下图所示:示例1 {代码...} 示例...
学懂现代C++——《Effective Modern C++》之类型推导和auto
吴尼玛
2023-04-10
阅读 5 分钟
1.3k
之前分享过Scott Meyers的两本书《Effective C++》和《More Effective C++》。这两本书对我深入学习C++有着很大的帮助,建议所有想进阶C++技术的同学都可以看看。但是,这两本书是大神Scott在C++11之前出的,而C++11对于C++社区来说是一次重大的变革,被称为现代C++,用以区分C++11之前的传统C++。
WebRTC中的NAT穿透
吴尼玛
2023-03-10
阅读 3 分钟
978
我们知道,WebRTC会按照内网、P2P、中转的顺序来尝试连接。在大部分的情况下,实际是使用P2P或者中转的。这里P2P的场景主要使用的技术就是NAT穿透。
WebRTC中的ICE
吴尼玛
2023-02-11
阅读 1 分钟
1.8k
ICE简介ICE是用于UDP媒体传输的NAT穿透协议(适当扩展也可以支持TCP),它需要利用STUN和TURN协议来完成工作。STUN协议提供了获取一个内网地址对应的公网地址映射关系(NAT Binding)的机制,并且提供了它们之间的保活机制。TURN协议是STUN协议的一个扩展,允许一个peer只使用一个转发地址就可以和多个peer实现通信。其...
WebRTC中的SDP
吴尼玛
2022-11-14
阅读 7 分钟
1.6k
在WebRTC的通信过程中,SDP是其中重要的协议。SDP(Session Description Protocol)全称是会话描述协议。主要用于两个会话实体之间的媒体协商。WebRTC引入SDP来描述媒体信息,用于媒体协商时决定双方是否可以进行通信,以及用何种方式进行通信。SDP作为WebRTC的信令系统的一部分,驱动着WebRTC的运转。从这个角度来说,S...
WebRTC客户端主要流程分析
吴尼玛
2022-10-07
阅读 2 分钟
1.1k
因为WebRTC规范里没有包含信令协议,所以像OWT、mediasoup等支持WebRTC的开源项目,其通信两端建立连接的过程中的信令逻辑各不相同。但是,总体上来说,其通信过程必然会包括以下过程。
实时音视频通信的指标和主要矛盾
吴尼玛
2022-09-13
阅读 3 分钟
985
对于互动性很强的实时通信场景,比如上课、视频会议等。相比于线上,我们都更喜欢线下交流。这主要是因为线下交流会更有“真实感”。那么线上交流的“真实感”缺失在哪呢?
Windows端ZLMediaKit编译与webrtc推拉流测试
吴尼玛
2022-08-25
阅读 2 分钟
1.8k
之前编译过linux端的ZLMediaKit,做过webrtc的推拉流测试。这次编译Windows端的ZLMediaKit,也做下webrtc的推拉流测试。特此记录下编译和测试过程。特别提示下,如果不需要做webrtc测试,只要编译ZLMediaKit,则可以忽略安装libsrtp的流程。
WebRTC目录结构
吴尼玛
2022-07-31
阅读 2 分钟
1.2k
我们下载完WebRTC源码后想深入分析其源码的话,首先就需要了解WebRTC的目录结构。因为WebRTC的分层工作做的很好,其代码的目录结构也比较清晰,在了解这个结构后,就能根据想分析的功能去对应目录寻找需要的源码了。
Perfmon监控Windows进程性能
吴尼玛
2022-06-19
阅读 4 分钟
1.8k
Perfmon(Performance Monitor)是一款Windows自带的性能监控工具,提供了图表化的系统性能实时监视器、性能日志和警报管理。通过添加性能计数器(Performance Counter)可以实现对CPU、内存、网络、磁盘、进程等多类对象的上百个指标的监控。其中,性能日志可定义输出格式为二进制文件、文本文件、SQLSERVER记录等,以方便...
音视频中的DTS、PTS
吴尼玛
2022-06-10
阅读 2 分钟
1.3k
I 帧(Intra coded frames) : I 帧图像采用帧内编码方式,即只利用了单帧图像内的空间相关性,而没有利用时间相关性。I 帧使用帧内压缩,不使用运动补偿,由于 I 帧不依赖其它帧,所以是随机存取的入点,同时是解码的基准帧。I 帧主要用于接收机的初始化和信道的获取,以及节目的切换和插入,I 帧图像的压缩倍数相对较...
Linux模拟弱网丢包、延时和限制带宽
吴尼玛
2022-06-02
阅读 1 分钟
2.3k
Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。通过tc命令我们可以模拟弱网进行测试。
Linux网络流量监控——iftop
吴尼玛
2022-06-02
阅读 2 分钟
1.8k
iftop 是 Linux 系统一个免费的网卡实时流量监控工具,类似于 top 命令。iftop 可以监控指定网卡的实时流量、端口连接信息、反向解析 IP 等,还可以精确显示本机网络流量及网络内各主机和本机相互通信的流量集合,非常适合于监控代理服务器或路由器的网络流量。
SRS带宽不足下内存泄漏
吴尼玛
2022-05-29
阅读 3 分钟
1.2k
最近解决了SRS中的一个bug,特此记录一下。SRS(4.0)服务器上,使用RTMP推流,在网页端用webrtc拉流。设置低带宽场景下存在内存大幅度持续不断上涨现象,应该是有内存泄漏。观察发现2个现象——1.存上涨幅度与推流端码率成正比。2.关闭nack后内存上涨幅度明显减小。控制台上打印SRS日志发现错误日志: {代码...} 结合日志...
1
2
(current)
3
4
5
下一页
上一页
2
(current)
下一页