搭建webRTC视频聊天
想在公网上实现视频通信,需要下面3个核心元素:
- 一个是NAT穿透服务器(ICE Server),实现内网穿透。
- 基于WebSocket的信令服务器(Signaling Server),用于建立点对点的通道。
- Web客户端。通过H5的WebRTC特性调用摄像头,进行用户交互。
想在公网上实现视频通信,需要下面3个核心元素:
看个小故事:
1 | *writes down "1+1+1+1+1+1+1+1 =" on a sheet of paper* |
1 | type LRUCache struct { |
1 | package main |
1 | func reverseWords(s string) string { |
1 | func romanToInt(s string) int { |
两个套路,一个是递归遍历二叉树traverse() 无返回值 ,一个是分解处理子数,有返回值。
综上,遇到一道二叉树的题目时的通用思考过程是:
1、是否可以通过遍历一遍二叉树得到答案?如果可以,用一个 traverse 函数配合外部变量来实现。
2、是否可以定义一个递归函数,通过子问题(子树)的答案推导出原问题的答案?如果可以,写出这个递归函数的定义,并充分利用这个函数的返回值。
3、无论使用哪一种思维模式,你都要明白二叉树的每一个节点需要做什么,需要在什么时候(前中后序)做。
1 | package main |
头脑风暴: 临时数组++
1 | func findRepeatNumber(nums []int) int { |
1 | func merge(nums1 []int, m int, nums2 []int, n int) { |