target

linux中其他搜索命令(locate/which/whereis/grep)

心已入冬 提交于 2020-02-27 17:23:01
目录 locate which whereis grep locate 解释 命令名称:locate 命令所在路径:/usr/bin/locate 执行权限:所有用户 功能描述:在文件资料库中查找文件 语法 locate [文件] -i 不区分大小写 提示locate命令找不到 yum -y install mlocate updatedb locate缺陷 1.locate不是实时的,新建的文件可能找不到,需要手动运行命令更新updatedb 2.locate无法查找/tmp文件夹下的内容,因为/tmp是临时文件夹,updatedb也不管用 示例 # 搜索文件(区分大小写) locate test.txt # 手动更新文件资料库 updatedb # 搜索文件(不区分大小写) locate -i test.txt which 解释 命令名称:which 命令所在路径:/usr/bin/which 执行权限:所有用户 功能描述:搜索命令所在目录及别名信息 语法 which ls 示例 # 查找cp命令所在的目录及别名 which cp [root@izm5e2q95pbpe1hh0kkwoiz ~]# which cp alias cp='cp -i' /usr/bin/cp # cp的是cp -i的别名 # cp命令的目录是/usr/bin/cp [root

【leetcode】167. Two Sum II - Input array is sorted

廉价感情. 提交于 2020-02-27 17:05:10
题目描述 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/ 解法1 时间复杂度:O(n) 空间复杂度:O(1) 思路:因为是有序数组,可使用首尾指针的方法,不断向中间移动 vector<int> twoSum(vector<int>& numbers, int target) { int i = 0, j = numbers.size() - 1; vector<int> vret; while(i <= j ){ if (numbers[i] + numbers[j] > target) j --; else if (numbers[i] + numbers[j] < target) i ++; else{ vret.push_back(numbers[i]); vret.push_back(numbers[j]); break; } } return vret; } 来源: https://www.cnblogs.com/JesseTsou/p/10542299.html

Inter-Provider MPLS Solutions 之 option C-CSC

牧云@^-^@ 提交于 2020-02-27 16:09:40
Option C也叫作Multi-Hop eBGP方案,这种方案是在不同AS的PE之间直接建立MP-eBGP连接,以交换 v4路由。与前两种方案不同的是,ASBR不再需要维护和交换 v4路由了,减轻ASBR设备负担的同时也增强了网络的扩展性。为提高可扩展性,也可以在每个AS中指定一个路由反射器阻,由RR保存所有 v4 路由与本AS内的PE交换 v4 路由信息。两个AS的RR之间建立MP-eBGP连接,通告 v4路由。 从转发层面看,这种方案需要在不同的PE之间直接建立公网隧道,这就要求PE必须具有对方PE的Loopback地址的路由及标签,一种方法是在ASBR处,将BGP学习到的对方PE的Loopback地址路由引入到本地的IGP ,使得LDP能为其分配标签。另外,由于ASBR 之间运行的是BGP,LDP协议通过IGP路由而建立的LSP会在ASBR之间中断,需要在ASBR之间利用eBGP来传递IPv4路由的标签,使得针对PE的Loopback地址的LSP得以贯通。此时,针对某个特定 ,从PE 发出的数据包通常带有三层标签,最里面的标签是对方AS 的PE为特定 分配的 标签(也叫私网标签),中间的标签是本ASBR为对方AS的PE 路由器分配的标签,最外面的标签是本AS为IGP路由分配的LDP 标签。 优点 这种方案应该说是最容易被接受的,因为它符合MPLS 的体系结构的要求

【leetcode】【medium】40. Combination Sum II​​​​​​​

不羁岁月 提交于 2020-02-27 14:33:29
40. Combination Sum II Given a collection of candidate numbers ( candidates ) and a target number ( target ), find all unique combinations in candidates where the candidate numbers sums to target . Each number in candidates may only be used once in the combination. Note: All numbers (including target ) will be positive integers. The solution set must not contain duplicate combinations. Example 1: Input: candidates = [10,1,2,7,6,1,5], target = 8, A solution set is: [ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6] ] Example 2: Input: candidates = [2,5,2,1,2], target = 5, A solution set is: [ [1,2,2], [5]

拦截器

淺唱寂寞╮ 提交于 2020-02-27 12:56:31
拦截器的作用 和动态代理一样,也可以在业务方法前后加入自己的逻辑,它就是基于动态代理实现的。但由于动态代理比较难以理解,于是设计一个拦截器接口供开发者使用。 拦截器的步骤 1.定义拦截器接口Interceptor package test1; import java.lang.reflect.Method; public interface Interceptor { //代理对象 真实对象 方法 方法参数 //在真实对象前调用,返回true则反射真实对象方法;false则调用around方法 public boolean before(Object proxy,Object target,Method method,Object[] args); public void around(Object proxy,Object target,Method method,Object[] args); //反射真实对象方法或者调用around方法后调用after方法 public void after(Object proxy,Object target,Method method,Object[] args); } 2.实现Interceptor接口 package test1; import java.lang.reflect.Method; public class

唯心主义蠢货的[vue学习] Vue数据的监听原理

让人想犯罪 __ 提交于 2020-02-27 10:43:30
Vue数据的监听 如何监听 vue2.0 Object.defineProperty() 只能对属性进行数据劫持,不能对整个对象进行劫持,同理无法对数组进行劫持,但是我们在使用 Vue 框架中都知道,Vue通过遍历属性或者数组的项进行观察,实现数据劫持,我们查看相关代码如下: /** * Observe a list of Array items. */ observeArray (items: Array<any>) { for (let i = 0, l = items.length; i < l; i++) { observe(items[i]) // observe 功能为监测数据的变化 } } /** * 对属性进行递归遍历 */ let childOb = !shallow && observe(val) // observe 功能为监测数据的变化 缺点: 无法监听数组根据index对于元素的赋值 // 因为数组是在实例化过程中遍历数组进行observe的 ,如果这样赋值就相当于把index的指向变成了一个新的位置,但是这个位置的对象是没有进行observe的 vm . todos [ 0 ] = { name : 'New name' , description : 'New description' } ; 需要深度遍历,浪费内存 // 对象深度遍历 vue3.0

java jdk动态代理模式举例浅析

柔情痞子 提交于 2020-02-27 10:30:37
代理模式概述 代理模式是为了提供额外或不同的操作,而插入的用来替代”实际”对象的对象,这些操作涉及到与”实际”对象的通信,因此代理通常充当中间人角色。 java中常用的动态代理模式为jdk动态代理和cglib动态代理。 反射技术 了解动态代理之前,需要先了解一下java中的反射,反射在框架中的应用非常广泛,它能够配置:类的全限定名,方法和参数。在运行时,动态的完成类的初始化,或者反射调用某些方法。 我们可以通过Class.forName()方法加载类,并用getConstructor方法配置参数。例: object = (goodsServiceImpl)=Class.forName("com.xjx.test.goodsServiceImpl").getConstructor(String.class).newInstance("计算机"); 1. jdk动态代理举例 jdk动态代理由java.lang.reflect.*包提供,它 必须借助一个接口 才能实现代理。 我们举个例子来实现jdk动态代理并简要分析: 首先我们定义一个接口: public interface jdkProxy { public void test(String tString); } 以及它的实现类: public class jdkProxyImpl implements jdkProxy{

js事件对象

独自空忆成欢 提交于 2020-02-27 07:02:14
Evernote Export js事件对象 在DOM元素触发事件时,事件处理函数中会产生的一个事件对象event。 事件对象获取方法 所有浏览器都支持event对象,只是支持的方式不一样 FireFox、Chrome等浏览器要获取到event对象,需要从函数中传入,参数名随意 而IE在浏览器中event作为window对象的一个属性存在,可以直接使用 event 或 window.event 获取到 //事件对象获取方法 document .onkeydown = function ( ev ) { //onkeydown 事件会在用户按下个键盘按键时发生 var e = ev || event ; //兼容各个浏览器 console .log(e); } 事件对象中与鼠标/键盘相关属性 clientX/clientY属性:返回当事件被触发时,鼠标指针的坐标(到浏览器窗口的坐标) offsetX/offsetY属性:返回当事件被触发时,鼠标指针的坐标(在事件源元素中的坐标) pageX/pageY属性:返回当事件被触发时,鼠标指针的坐标(整个页面中的坐标) button属性:返回触发事件的鼠标按键 which属性:返回触发事件的按键码(针对键盘和鼠标事件) IE678不支持 keyCode属性:返回键盘按键的按键码 组合键:ctrlKey、altKey、shiftKey

39. 组合总和 ,40. 组合总和 II,216. 组合总和 III

↘锁芯ラ 提交于 2020-02-27 06:57:31
1 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 2 3 candidates 中的数字可以无限制重复被选取。 4 5 说明: 6 7 所有数字(包括 target)都是正整数。 8 解集不能包含重复的组合。 9 示例 1: 10 11 输入: candidates = [2,3,6,7], target = 7, 12 所求解集为: 13 [ 14 [7], 15 [2,2,3] 16 ] 17 示例 2: 18 19 输入: candidates = [2,3,5], target = 8, 20 所求解集为: 21 [ 22 [2,2,2,2], 23 [2,3,3], 24 [3,5] 25 ] 26 27 来源:力扣(LeetCode) 28 链接:https://leetcode-cn.com/problems/combination-sum 29 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 注意点: 1.最终结果集不能放在递归函数的参数列表中 2.部分递归的参数 在递归前修改的,递归后修改回来 3.适应题目要求,对递归参数进行调整 1 vector<vector<int>> res; 2 vector<int> temp; 3 4

LeetCode.16.最接近的三数之和

岁酱吖の 提交于 2020-02-27 06:21:17
''' 思路:此题的思路和三数之和相同 1.将数组从小到大排序,并定义3个指针:index,left,right; >>left=index+1,right=length(数组) 2.循环当前指针index,并将left,right相向移动; 3.如果当前值cur_Sum:[sum(index+left+right)]=target是最小值;记录结果 4.如果当前值cur_Sum比前一结果res更优,替换结果res=cur_Sum 5.如果cur_Sum>target;right太大,right向左移 6.如果cur_Sum<target;left太小,left向右移 特判: 数组长度<=3,返回值 sum(index+left+right)=target,返回值 去重: num(i)==num(i-1) 注意:python的正负无穷大=float("inf"),float("-inf") ''' def threeSumClosest(nums,target): if len(nums)<=3: #列表长度<=3 return sum(nums) #返回列表求和值 nums.sort() #列表从小到大排序 res=float("inf") #初始差异值=无空大 cur_Sum=0 #当前求和值 res_list=[] for i in range(0,len(nums) ):