03
6 月
2020
家里的路由只要是openwrt系列的,都可以通过设置hosts来实现屏蔽广告或者苹果系统的升级等功能。十分有用,而且效率高没有任何资源消耗。
修改方式
vi /etc/hosts
因此写一份配置进行记录,也会保持更新。
#20200603更新
#IOS OTA 屏蔽苹果系统升级
127.0.0.1 mesu.apple.com
127.0.0.1 appldnld.apple.com
127.0.0.1 xp.apple.com
127.0.0.1 gdmf.apple.com
127.0.0.1 ipsw.me
127.0.0.1 updates-http.cdn-apple.com
#屏蔽乐播投屏电视端广告
127.0.0.1 adeng.hpplay.cn
127.0.0.1 ad.hpplay.cn
#tcl-tv update 屏蔽tcl电视系统升级
127.0.0.1 launcher.TCLoudfamily.com
127.0.0.1 update.cedock.com
#屏蔽小米盒子或者电视系列广告
127.0.0.1 gvod.aiseejapp.atianqi.com
127.0.0.1 stat.pandora.xiaomi.com
127.0.0.1 upgrade.mishop.pandora.xiaomi.com
127.0.0.1 logonext.tv.kuyun.com
127.0.0.1 config.kuyun.com
127.0.0.1 mishop.pandora.xiaomi.com
127.0.0.1 dvb.pandora.xiaomi.com
127.0.0.1 api.ad.xiaomi.com
127.0.0.1 de.pandora.xiaomi.com
127.0.0.1 data.mistat.xiaomi.com
127.0.0.1 jellyfish.pandora.xiaomi.com
127.0.0.1 gallery.pandora.xiaomi.com
127.0.0.1 o2o.api.xiaomi.com
127.0.0.1 bss.pandora.xiaomi.com
02
6 月
2020
最近遇到了一些小问题,我的tp703n(已经刷了openwrt)在单位usb连接手机自动共享网络到wifi。这种功能确实很好用,既能给手机充电也能直接共享网络(非手机热点,热点多设备非常不稳定)。
但是在用某酸酸插件时,会出现当我拔下手机出去有事一段时间后,回来该插件就会出问题,需要手动重启插件解决。这个体验太差了,所以想到直接写个简单热插拔的脚本监听wan接口,当wan接口发生变化时,就重启该插件。
这个思路源自openwrt的著名插件ddns的设计,ddns应该是全世界最出名最常用的插件了,非常好用。ddns,主要用于将域名动态绑定到路由器的ip上。该插件有个智能功能,就是监听wan接口事件,一旦出现断线重启,就会重启插件,实现更新ip到dns的功能。
具体实操很简单。
#在/etc/hotplug.d/iface目录新建一个脚本99-ssr
vi /etc/hotplug.d/iface/99-ssr
#写入以下内容即可
#!/bin/bash
if [ $ACTION=ifup -a $INTERFACE=wan ]; then
/etc/init.d/shadowsocksr restart
fi
解释下/etc/hotplug.d/iface 这个目录是openwrt监听wan或者lan接口的脚本目录,而且目录里脚本的执行顺序按照数字的顺序来的。所以上面99开头的脚本就是希望最后时间里去执行该脚本。
至于脚本内容那就很简单了,就是对于wan网络接口出现up上线的时候,执行目标插件的重启。
31
5 月
2020
去广告主流插件有两个
一.koolproxy
优点:1.对http与https都有效
缺点:1.占用资源很多,规则复杂
2.设备需要安装证书,操作复制。
二.adbyby plus+广告屏蔽大师
优点:1.轻量级,占用资源少
缺点:1.确定只对http有效,对https无效。而目前大量广告都是基于后者。
留学插件有也有两个主流
一、ssrplus+
优点:1.自动切换节点功能更好用,采用的wget的方式判断节点是否异常。
缺点:1.与插件koolproxy不兼容,二者只能选一个。
二、passwall
优点:1.兼容性很好,目前没发现什么问题。
缺点:1.自动切换节点功能不太准确,采用ping方式检测。会导致经常自动高频切换节点。
22
5 月
2020
原题https://leetcode.com/problems/median-of-two-sorted-arrays/
内容为两个排序好的非空列表,求这两个表之间的中位数。难点在对时间复杂度有要求。
class Solution:
def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
lis=nums1+nums2
lis=sorted(lis)
return lis[int(len(lis)/2)] if (len(lis)%2)!=0 else (lis[int(len(lis)/2)-1]+lis[int(len(lis)/2)])/2
22
5 月
2020
原题https://leetcode.com/problems/two-sum/
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
st={}
ac=[]
for i,val in enumerate(nums):
if val in st:
ac.append(st[val])
ac.append(i)
return ac
else:
st[target-val]=i
21
5 月
2020
21
5 月
2020
原题https://leetcode.com/problems/longest-substring-without-repeating-characters/submissions/
经典题 最长子窜长度
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
if s=="":
return 0
max1 = 1
for i in range(0,len(s)-1):
b=[]
b.append(s[i])
for j in range(i+1,len(s)) :
if s[j] not in b:
b.append(s[j])
else:
max1=(len(b) if len(b)>max1 else max1)#遇到重复立马打断循环 计数
break
#print(b)
max1=(len(b) if len(b)>max1 else max1)#没有遇到任何重复 计数
return max1
21
5 月
2020
原题https://leetcode.com/problems/two-sum/submissions/
题目内容 寻找列表两个数之和为指定数字的位置
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
b=[]
for i,val in enumerate(nums):
tmp=nums[i+1:]
if (target-val) in tmp:
b.append(i)
b.append(i+1+tmp.index(target-val))
return b