target

Makefile入门

Deadly 提交于 2020-04-07 10:28:40
1 手动编译链接 我们知道源文件生成可执行文件的过程可能需要一些依赖文件(头文件或者其他源文件)。[2]中提到对于C语言,产生可执行程序包括这样的步骤: 1 预处理源文件(.c) 替换预处理命令(如 #define) 展开头文件(.h,包括静态链接库的头文件)到引用的源文件 2 依次编译处理过的源文件,然后进行汇编,生成对应的目标文件(.o) 3 链接(静态链接)目标文件和静态链接库(静态链接库的源文件生成的目标文件,.a),生成可执行的二进制文件。 我们假设这里有三个c文件: hello.c #include<stdio.h>//sys lib head file int main() { int a=33; int b=22; printf("Min value is %d\n",min(a,b)); printf("Max value is %d\n",max(a,b)); return 0; } max.c int max(int a,int b) { return a>b?a:b; } min.c int min(int a,int b) { return a<b?a:b; } 很明显,hello.c编译必须依赖max.c和min.c。我们手动编译生成可执行文件,并执行: fsj@ubuntu:~/templates$ ls hello.c max.c min.c fsj

两个数相加等于目标值

爷,独闯天下 提交于 2020-04-07 09:58:55
给出一个数字列表和一个目标值(target),假设列表中有且仅有两个数相加等于目标值,我们要做的就是找到这两个数,并返回他们的索引值。 解决方案: 通过创建字典,将nums里的值和序号对应起来,并创建另一个字典存储目标值(Target)-nums的值,通过判断该值是否在nums内进行判断并返回其对应索引值 , class solution(): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ # 创建字典一,存储输入列表的元素值和对应索引 num_dict = {nums[i]: i for i in range(len(nums))} print(num_dict) # 创建另一个字典,存储target-列表中的元素的值 num_dict2 = {i: target - nums[i] for i in range(len(nums))} print(num_dict2) # 判断num_r是否是输入列表中的元素,如果是返回索引值,不是则往下进行 result = [] for i in range(len(nums)): j = num_dict.get(num_dict2.get(i)) if (j is not None)

树---二叉搜索树的第K个节点

谁说胖子不能爱 提交于 2020-04-07 09:46:30
给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 分析:二叉搜索树就是每个节点X,大于其左子树的值,小于其右子树的值,其中序排序是递增的。使用中序遍历,每遍历一个节点,k-1,直到k减到1,即为第K小的节点 /* function TreeNode(x) { this.val = x; this.left = null; this.right = null; } */ function KthNode(pRoot, k) { if (pRoot === null || k === 0) { return null; } // 为了能追踪k,应该把KthNodeCore函数定义在这里面,k应该在KthNodeCore函数外面 function KthNodeCore(pRoot) { let target = null; if (pRoot.left !== null) { target = KthNodeCore(pRoot.left, k); } if (target === null) { if (k === 1) { target = pRoot; } k--; } if (target === null && pRoot.right !== null) { target =

【zepto学习笔记01】核心方法$()

此生再无相见时 提交于 2020-04-07 05:51:06
前言 我们移动端基本使用zepto了,而我也从一个小白变成稍微靠谱一点的前端了,最近居然经常要改到zepto源码 但是,我对zepto不太熟悉,其实前端水准还是不够,所以便私下偷偷学习下吧,别被发现了 核心方法$() 我们使用这个方法一般有几个用途(我这里只说我自己用到过的),这里根据使用度排个序: ① 选择器/$(selector) 将返回一个包装过的dom集合对象(有很多选择器) ② html字符串/$(domStr) 仍然返回一个包装过的dom对象,他会将字符串初始化为我们的dom结构 PS:新增了一个方法可以直接赋予dom结构属性,我们这里不关注 ③ 函数/$(function(){}) 我基本没这么用过,他实在文档加载结束后执行 暂时不管这些东西吧。我们这里来一个个看看他们的实现: 1 $('div') 2 //=> all DIV elements on the page 3 $('#foo') 4 //=> element with ID "foo" 5 6 // create element: 7 $("<p>Hello</p>") 8 //=> the new P element 9 // create element with attributes:10 $("<p />",11 {12 text: "Hello",13 id: "greeting",14

1055. 形成字符串的最短路径

风流意气都作罢 提交于 2020-04-06 19:44:52
描述 对于任何字符串,我们可以通过删除其中一些字符(也可能不删除)来构造该字符串的子序列。 给定源字符串 source 和目标字符串 target,找出源字符串中能通过串联形成目标字符串的子序列的最小数量。如果无法通过串联源字符串中的子序列来构造目标字符串,则返回 -1。 示例 1: 输入:source = "abc", target = "abcbc" 输出:2 解释:目标字符串 "abcbc" 可以由 "abc" 和 "bc" 形成,它们都是源字符串 "abc" 的子序列。 示例 2: 输入:source = "abc", target = "acdbc" 输出:-1 解释:由于目标字符串中包含字符 "d",所以无法由源字符串的子序列构建目标字符串。 示例 3: 输入:source = "xyz", target = "xzyxz" 输出:3 解释:目标字符串可以按如下方式构建: "xz" + "y" + "xz"。 思路 双指针法,每次在target中查找source的子序列,总和不超过target的长度。 class Solution { public: int shortestWay(string source, string target) { int i=0,j=0,count=0; while(j<target.size()&&count<target.size()

Python并发编程之多线程使用

瘦欲@ 提交于 2020-04-06 11:34:24
目录 一 开启线程的两种方式 二 在一个进程下开启多个线程与在一个进程下开启多个子进程的区别 三 练习 四 线程相关的其他方法 五 守护线程 六 Python GIL(Global Interpreter Lock) 七 同步锁 八 死锁现象与递归锁 九 信号量Semaphore 十 Event 十一 条件Condition(了解) 十二 定时器 十三 线程queue 十四 Python标准模块--concurrent.futures 一 开启线程的两种方式 ``` #方式一 from threading import Thread import time def sayhi(name): time.sleep(2) print('%s say hello' %name) if name == ' main ': t=Thread(target=sayhi,args=('egon',)) t.start() print('主线程') 方式二 from threading import Thread import time class Sayhi(Thread): def init (self,name): super(). init () self.name=name def run(self): time.sleep(2) print('%s say hello' % self

并发编程-多线程,GIL锁

倾然丶 夕夏残阳落幕 提交于 2020-04-06 11:32:00
本章内容: 1.什么是GIL 2.GIL带来的问题 3.为什么需要GIL 4.关于GIL的性能讨论 5.自定义的线程互斥锁与GIL的区别 6.线程池与进程池 7.同步异步,阻塞非阻塞 一.什么是GIL 官方解释: ''' In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython’s memory management is not thread-safe. (However, since the GIL exists, other features have grown to depend on the guarantees that it enforces.) ''' 释义: 在CPython中,这个全局解释器锁,也称为GIL,是一个互斥锁,防止多个线程在同一时间执行Python字节码,这个锁是非常重要的,因为CPython的内存管理非线程安全的,很多其他的特性依赖于GIL,所以即使它影响了程序效率也无法将其直接去除 总结: 在CPython中,GIL会把线程的并行变成串行

面试官:看到你简历上写着会Vue?

与世无争的帅哥 提交于 2020-04-06 09:38:45
在面试过程中,被问到Vue知识点的一些碎事。 来源:掘金推荐 面试官:vue是什么? vue是一门渐进式的javascript框架。所谓的渐进式就是:从中心的的视图层渲染开始向外扩散的构建工具层。这过程会经历:视图层渲染->组件机制->路由机制->状态管理->构建工具;五个层级。 特点:易用,灵活,高效,入门门槛低。 图来自百度👆 面试官:v-if和v-show的区别? 前者是将DOM创建和删除后者则是改变display的值来控制DOM的显示和隐藏。 面试官:vue有什么生命周期?在new Vue 到 vm.$destory的过程经历了什么? 初始化阶段 beforeCreate和create 挂载阶段 beforeMount和mounted 更新阶段 beforeUpdate和update 卸载阶段 beforeDestory和destory 当 new Vue() 后,首先会 初始化事件 和 生命周期 ,接着会执行 beforeCreate生命周期钩子 ,在这个钩子里面还拿不到 this.$el 和 this.$data ;接着往下走会 初始化inject 和 将data的数据进行侦测也就是进行双向绑定 ;接着会执行 create钩子函数 ,在这个钩子里面能够拿到 this.$data 还拿不到 this.$el ;到这里初始化阶段就走完了。然后会进入一个模版编译阶段

Attribute

不打扰是莪最后的温柔 提交于 2020-04-06 07:00:18
文章著作权归作者所有。转载请联系作者,并在文中注明出处,给出原文链接。 本文原更新于作者的github博客,这里给出 链接 。 [Obsolete] public static void Func() { // ... } Attribute是什么 注释是对程序源代码的一种说明,在编译时会被编译器丢弃,不会影响程序的执行,但有时候我们希望“注释”可以影响到程序。这个时候,Attribute就派上用场了。Attribute(特性)是一种语言构造(language construct),它允许你向程序集里添加元数据,是程序代码的一部分。 Attribute的形式 Attribute在形式上像是Property、Method、Class的一个装饰或者标签,但实质上它是一个实例化方式特殊的类,它必须依附在一个target上,它一般安放在这些target的上方,在方括号内声明。获取和使用元数据的程序被称为consumer。一个target可以拥有多个Attribute,Attribute的顺序不会影响效果。 Attribute的使用 在使用Attribute时,我们可以使用Attribute的全称,也可以使用Attribute的前缀。使用无参Attribute时,可以省略参数列表的括号。 // both are supported [Obsolete] public static void

python 第八天

情到浓时终转凉″ 提交于 2020-04-06 05:49:02
1、paramiko模块 1.1、此函数是ssh模块: import paramikodef ssh2(ip='127.0.0.1',port=22,username='',passwd='',cmd=''): """ ssh连接服务器 :return: """ ssh = paramiko.SSHClient() #创建SSH对象 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #允许连接不在know_hosts文件中的主机 ssh.connect(ip,int(port),username,passwd) #连接服务器 stdin,stdout,stderr = ssh.exec_command(cmd) #执行命令,标准输入,输出,错误三个变量中 result = stdout.read() #获取命令的结果,输出是字节的类型 print(result.decode("utf-8")) #将字节的类型转换为utf-8 ssh.close()ssh2("192.168.1.1",22,"root","123456","df")1.2、sftpclient: import paramikotransport = paramiko.Transport(('192.168.1.1',22))transport