next

合并两个有序链表

倾然丶 夕夏残阳落幕 提交于 2020-08-20 08:06:27
今天在网上突然又看到的龙哥的信息, 并在我东上查了一下, 居然写了5本书了, 立马下单了, 原来我买的时候, 刚只有一本书. 在整理笔记的时候翻到了这篇观后感, 特意发出来跟大家分享一下.(注以下观后感发表在三四年前, 具体时间忘记了) 偶尔在北京青年的电视上看到龙哥(李尚龙)的采访,他的一句“收入和付出的努力不成正比,而和你的工作的不可替代性成正比”深深打动了我,从来买了他的书<<你只是看起来很努力>>, 看完这本启发还是很大的,从而买了他的这本书, 并查了 他的资料, 粉了他. 首先我们做事情要搞清楚方向,其次才是效率的问题,在这个繁华的闹市中,要想有着体面的生活,首先要有一个不可替代的技能,最好这个技能还是自己喜欢的,就可以有一份可观的收入。 其次我们大脑的休息不只有睡觉,我们可以做很多有意义的事情来交替,大脑就会得到休息,从而发挥自己做事情最佳的效率 回想大学生活,很多的时间都浪费了,没有学习到一种让自己不可替代的技能。告诫大学生,《以赚钱为目的的兼职,是最愚蠢的投资》真心的奉献给那些认为家里贫穷而去打工的孩子,在你们最应该学习的时间里而选择了去做兼职,而且把赚钱做为第一目的,就大错特错了,我们要计算自己的时间成本和精力成本,更加要计算财力,兼职赚到的钱可能没有工作一个月赚到的多,真正有一门不课替代的技能是多么的可贵 总是在想,农民工是多么的辛苦,是他们不够努力吗

面试官:小伙子,你给我说一下HashMap 为什么线程不安全?

心不动则不痛 提交于 2020-08-20 07:27:06
前言:我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。 1.jdk1.7中的HashMap 在jdk1.8中对HashMap做了很多优化,这里先分析在jdk1.7中的问题,相信大家都知道在jdk1.7多线程环境下HashMap容易出现死循环,这里我们先用代码来模拟出现死循环的情况: 1 public class HashMapTest { 2 3 public static void main(String[] args) { 4 HashMapThread thread0 = new HashMapThread(); 5 HashMapThread thread1 = new HashMapThread(); 6 HashMapThread thread2 = new HashMapThread(); 7 HashMapThread thread3 = new HashMapThread(); 8 HashMapThread thread4 = new HashMapThread(); 9 thread0.start(); 10 thread1.start(); 11 thread2.start(); 12 thread3.start(); 13 thread4.start(); 14 } 15 }

外部应用复制 表格 到word中 设置表格自适应

≡放荡痞女 提交于 2020-08-20 07:22:39
word 批量设置表格宽度自适应 描述 : 我们经常从 外部 如 excel,html 等其他文件 中复制的表格到word 文档 经常会出现在 word 中显示不全的问题 主要是源格式的表格 宽度比 word 文档页面要大,就会导致 表格无法正常显示所有数据 解决方案 使用 word 宏工具 批量设置 word 文档中的 表格宽度自适应,即可解决问题! 在当前word文档中 按 alt + F11 快捷键 打开 word 宏编辑器 是 vb 语言。 然后 步骤如下图 所示 直接上代码 附 图中代码如下:(尽情的复制吧) Private Sub Document_Open() Application.Browser.Target = wdBrowseTable For i = 1 To ActiveDocument.Tables.Count ActiveDocument.Tables(i).AutoFitBehavior (wdAutoFitContent) '根据内容自动调整表格 ActiveDocument.Tables(i).AutoFitBehavior (wdAutoFitWindow) '根据窗口自动调整表格 ActiveDocument.Tables(i).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter

[A*算法]A*算法的简单实现(一)

北城以北 提交于 2020-08-20 07:01:50
写在前面:之前看过一点,然后看不懂,也没用过。 最近正好重构项目看到寻路这块,想起来就去查查资料,总算稍微理解一点了,下面记录一下自己的成果(哈哈哈 :> ) 下面分享几篇我觉得挺不错的文章 A*算法 A*寻路算法详细解读 ======================================================================================== 搜索区域(The Search Area) 我们假设某人要从 A 点移动到 B 点,但是这两点之间被一堵墙隔开。如图 1 ,绿色是 A ,红色是 B ,中间蓝色是墙。 图 1 你应该注意到了,我们把要搜寻的区域划分成了正方形的格子。这是寻路的第一步,简化搜索区域,就像我们这里做的一样。这个特殊的方法把我们的搜索区域简化为了 2 维数组。数组的每一项代表一个格子,它的状态就是可走 (walkalbe) 和不可走 (unwalkable) 。通过计算出从 A 到 B需要走过哪些方格,就找到了路径。一旦路径找到了,人物便从一个方格的中心移动到另一个方格的中心,直至到达目的地。 方格的中心点我们成为“节点 (nodes) ”。如果你读过其他关于 A* 寻路算法的文章,你会发现人们常常都在讨论节点。为什么不直接描述为方格呢?因为我们有可能把搜索区域划为为其他多变形而不是正方形,例如可以是六边形

Asp.net Core 3.1基于AspectCore实现AOP,实现事务、缓存拦截器

若如初见. 提交于 2020-08-20 06:35:10
最近想给我的框架加一种功能,就是比如给一个方法加一个事务的特性Attribute,那这个方法就会启用事务处理。给一个方法加一个缓存特性,那这个方法就会进行缓存。 这个也是网上说的面向切面编程AOP。 AOP的概念也很好理解,跟中间件差不多,说白了,就是我可以任意地在方法的前面或后面添加代码,这很适合用于缓存、日志等处理。 在net core2.2时,我当时就尝试过用autofac实现aop,但这次我不想用autofac,我用了一个更轻量级的框架,AspectCore。 用起来非常非常的简单,但一开始还是走了一点弯路,主要是网上都是net core3以下的教程,3以下的使用方法跟之前有一些不同。 先安装NuGet包,包名:AspectCore.Extensions.DependencyInjection 然后在Program.cs类中增加一行代码,这是net core 3的不同之处,这句添加的代码,意思就是用AspectCore的IOC容器替换内置的。因为AOP需要依靠IOC实现,所以必须得替换掉内置的IOC。 public class Program { public static void Main( string [] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder

【论文阅读】NMS系列 结合代码学习 solov2 Matrix NMS

[亡魂溺海] 提交于 2020-08-20 06:18:45
NMS系列 NMS Soft NMS Matrix NMS decay factor f ( i o u i , j ) f(iou_{i,j}) f ( i o u i , j ​ ) decremented functions 代码解读 solov2提出了Matrix NMS,这一篇就想把NMS系列总结一下。 Non-Maximum Suppression的翻译是非“极大值”抑制,而不是非“最大值”抑制。这就说明了这个算法的用处:找到局部极大值,并筛除(抑制)邻域内其余的值。 NMS 参考:https://zhuanlan.zhihu.com/p/78504109 在目标检测中,我们需要NMS从堆叠的类别一样的边框中挑出最好的那个。 主要实现的方法就是对于相同类别的,把置信度比自己低,和自己的重叠度即iou大于某一阈值的剔除(把置信度置位0) 算法流程: 将所有的框按类别划分,并剔除背景类,因为无需NMS。 对每个物体类中的边界框(B_BOX),按照分类置信度降序排列。 在某一类中,选择置信度最高的边界框B_BOX1,将B_BOX1从输入列表中去除,并加入输出列表。 逐个计算B_BOX1与其余B_BOX2的交并比IoU,若IoU(B_BOX1,B_BOX2) > 阈值TH,则在输入去除B_BOX2。 重复步骤3~4,直到输入列表为空,完成一个物体类的遍历。 重复2~5

并发编程AQS----共享锁

蹲街弑〆低调 提交于 2020-08-20 06:18:27
Semaphore Semaphore 字面意思是信号量的意思,它的作用是控制访问特定资源的线程数目。应用场景:资源访问,服务限流。 Semaphore 实现AbstractQueuedSynchronizer的方法与 ReentrantLock 一样 Semaphore构造方法 public Semaphore( int permits) {------permits 表示能同时有多少个线程访问我们的资源 sync = new NonfairSync(permits); -------------默认创建的是非公平锁。 } abstract static class Sync extends AbstractQueuedSynchronizer { private static final long serialVersionUID = 1192457210091910933L; Sync(int permits) { setState(permits);-------传入的permits做i为了state的值,作为资源总数 } semaphore.acquire();获取资源,源码实现 public void acquire() throws InterruptedException { sync.acquireSharedInterruptibly( 1 );--------

释译python fileinput中的description

此生再无相见时 提交于 2020-08-20 06:07:53
fileinput 模块提供处理一个或多个文本文件的功能 , 可以通过使用 for..in 来循环读取一个或多个文本文件内容 . 例子中的文件, 1.txt 1a 2a 3a 4a 2.txt 1b 2b DESCRIPTION Typical use is: import fileinput for line in fileinput.input(): process(line) This iterates over the lines of all files listed in sys.argv[1:], defaulting to sys.stdin if the list is empty. If a filename is '-' it is also replaced by sys.stdin. To specify an alternative list of filenames, pass it as the argument to input(). A single file name is also allowed. [ 译 ] 这个迭代了所有文件的行在 sys.argv[1:] 中,如果列表为空则默认为标准输入,如果文件名为 ”-” 它也为标准输入。指定一个文件名列表来做为参数传递给 input ,一个单独的文件名也是允许的。 [ 例 ] (1)#!/usr

如何在VMware虚拟机中安装CentOS6.7系统(上篇)

佐手、 提交于 2020-08-20 05:34:12
之前给大家分享了在VMware中如何创建CentOS虚拟机,今天给大家分享一下如何在虚拟机中安装CentOS系统,以CentOS6.7系统为例,其他的系统版本也可以参考该教程进行类似处理,具体的流程如下。 1、进入VMware,然后找到新创建的那台虚拟机,点击“开启此虚拟机”,如下图所示。 2、之后弹出下图的启动界面,这并不是报错,不用慌张。 ![]() 3、如下图所示,点击左下方的光碟logo,然后弹出两个选项,选择“设置”选项。 4、弹出下图虚拟机设置界面,选择“使用ISO映像文件”,如下图所示。 5、尔后点击“浏览”,从本地找到CentOS6.7的ISO映像文件,如下图所示,然后载入到虚拟机即可。 6、稍等片刻,弹出下图界面,等待系统反应即可。 7、选择“Installor upgrade an existing system”,意思是直接安装或更新现有的系统。我们的虚拟机十分纯洁,所以直接安装即可。选择第一项,然后直接enter。如果没有选择的话,系统在60秒之后会自动在你所选的目录下进行安装。 8、之后系统初始化进行中,只需要等待即可。 9、这一步选择skip,通过键盘的左右方向键,可以进行选定,然后需要等待一小会儿。 10、选择Next,继续。 ![]() 11、安装语言建议选择English,不容易出错。虽然汉字看上去理解方便些

C#线程同步

若如初见. 提交于 2020-08-20 05:15:50
原子操作类: public abstract class CounterBase { public abstract void Increase(); public abstract void Decrease(); }    public class CounterNoInterlocked : CounterBase { public int Count { get; private set; } public override void Decrease() { Count--; } public override void Increase() { Count++; } }    public class CounterWithInterlocked : CounterBase { private int _count; public int Count { get { return _count; } } public override void Decrease() { Interlocked.Decrement(ref _count); } public override void Increase() { Interlocked.Increment(ref _count); } }   Mutex类: static void Main(string[] args)