num

volatile关键字

吃可爱长大的小学妹 提交于 2020-01-28 20:42:38
一、简介 volatile是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile 变量的同步性较差(有时它更简单并且开销更低),而且其使用也更容易出错。 二、并发编程的3个基本概念 (1)原子性 ​ 定义: 即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 ​ 原子性是拒绝多线程操作的,不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。简而言之,在整个操作过程中不会被线程调度器中断的操作,都可认为是原子性。例如 a=1是原子性操作,但是a++和a +=1就不是原子性操作。Java中的原子性操作包括: ​ a. 基本类型的读取和赋值操作,且赋值必须是数字赋值给变量,变量之间的相互赋值不是原子性操作。 ​ b.所有引用reference的赋值操作 ​ c.java.concurrent.Atomic.* 包中所有类的一切操作 (2)可见性 ​ 定义: 指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。 ​ 在多线程环境下

python面试题六: 剑指offer

回眸只為那壹抹淺笑 提交于 2020-01-28 19:46:46
面试题3 二维数组中的查找 LeetCode 题目:二维数组中,每行从左到右递增,每列从上到下递增,给出一个数,判断它是否在数组中 思路:从左下角或者右上角开始比较 def find_integer(matrix, num): """ :param matrix: [[]] :param num: int :return: bool """ if not matrix: return False rows, cols = len(matrix), len(matrix[0]) row, col = rows - 1, 0 while row >= 0 and col <= cols - 1: if matrix[row][col] == num: return True elif matrix[row][col] > num: row -= 1 else: col += 1 return False 面试题4 替换空格 题目:把字符串中的空格替换成'20%' 方法1:直接使用Python字符串的内置函数 ' a b '.replace(' ', '20%') 面试题5 从尾到头打印单链表 方法1:使用栈,可以使用列表模拟 def print_links(links): stack = [] while links: stack.append(links.val) links =

【LN2014】LCA

眉间皱痕 提交于 2020-01-28 19:32:37
题目链接: https://www.luogu.com.cn/problem/P4211 题目大意:给定一棵有根树,对于 \(q\) 个询问 \(l, r, z\) , 求 \(\sum\limits_{l \leq i \leq r} {depth(Lca(i, z))}\) solution 考虑另一个问题:求出 \(\sum\limits_{1 \leq i \leq n} {dep[Lca(i, z)]}\) 此问题可以转化为 \(i\) 从 1 到 \(n\) , 分别把 1 到 \(i\) 路径上的所有点权值加 1, 再求 \(z\) 点的权值 不难发现 , 原问题可已转化为 \(\sum\limits_{1 \leq i \leq r} {dep[Lca(i, z)]} - \sum\limits_{1 \leq i \leq l - 1} {dep[Lca(i, z)]}\) , 可以把原问题分解成两个子问题并离线 , 从 1 到 \(n\) 分别用树剖修改 , 在此过程中算出子问题的答案 , 最后统计即可 时间复杂度: \(O(nlog^2n)\) code #include<bits/stdc++.h> using namespace std; template <typename T> inline void read(T &FF) { int RR = 1;

Python常用内置函数

一世执手 提交于 2020-01-28 19:31:39
目录 compile() eval() filter() map() range() zip() reduce() 例子 compile() # compile()_39 """ compile() compile(source, filename, mode[, flags[, dont_inherit]]) compile() 函数将一个字符串编译为字节代码。 source -- 字符串或者AST(Abstract Syntax Trees)对象。。 filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。 mode -- 指定编译代码的种类。可以指定为 exec, eval。 flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。 flags和dont_inherit是用来控制编译源码时的标志 """ # 将语句转换为字节码文件,exec() 函数能运行该字节码文件 var0 = compile ( 'print("I Love You.")' , '' , 'exec' ) # <code object <module> at 0x03420548, file "", line 1> exec ( var0 ) # I Love You. # 将该字符串转换为字节码文件,eval() 函数能将该字节码文件的结果计算出来

机器学习—02线性回归

爱⌒轻易说出口 提交于 2020-01-28 18:25:20
文章目录 一、单变量线性回归 二、损失(代价)函数——均方误差 1、损失函数J(θ~0~,θ~1~) 3、损失函数的等高图 三、梯度下降 1、梯度下降思想 2、梯度下降算法 3、线性回归的梯度下降 四、三种梯度下降 1、批梯度下降 2、随机梯度下降 3、Mini-Batch梯度下降 4、三种梯度下降比较 5、学习率衰减 五、多变量线性回归 1、多变量线性回归模型 2、多元梯度下降 一、单变量线性回归 最简单的开始:线性方程 简单来说: 线性:穿过很多点的直线,利用这个算法生成的模型一定是一条直线 回归:求解方程的步骤,让数据回归(聚集)到一个特定的模型中,如果特定的模型指的是线性,那么就是让所有点都靠近这条线 线性回归实例: 房屋面积(x) 房屋总价(y) 40 78 96 200 135 330 … … m:训练集数据的总量 x:输入变量 y:输出变量,也叫做标签 (x,y):一个训练样本 ( x i , y i ):第i个训练样本 属于有监督的学习:可以预测到一个确定的结果 我们知道机器学习的基本步骤是: 对于一元线性回归(单变量线性回归)来说, 学习算法的模型公式为: y = ax + b (a:斜率 b:截距) 我们换一种写法: h θ (x) = θ 0 + θ 1 x 1 线性回归实际上要做的事是:选择合适的参数(θ 0 ,θ 1 ),使得模型h θ (x

pyecharts代码

戏子无情 提交于 2020-01-28 18:17:46
作为一个湖北人,深切地感受到了疫情发展的迅速,每天新增的病例和新感染的地区都在增加。加油,武汉,加油中国! 图片结果在另一篇博客:https://blog.csdn.net/qq_41081716/article/details/104087919 参考的博文: python最全画地图,可视化数据,pyecharts画图 全国各主要省市经纬度 基于python Geolines制作北京到全国各地的航线 pyecharts带你领略动态轨迹图的风骚 世界范围内有病例输入的国家 截止至1月25日,出现新型肺炎病例的国家有中国、韩国、美国、法国、泰国、越南、新加坡、马来西亚、日本、澳大利亚、尼泊尔。 from pyecharts import Map # 世界地图数据 value = [ 1330 , 2 , 2 , 3 , 5 , 2 , 1 , 3 , 3 , 1 , 1 ] attr = [ "China" , "Korea" , "United States" , "France" , "Thailand" , "Vietnam" , "Singapore" , "Malaysia" , "Japan" , "Australia" , "Nepal" ] map0 = Map ( "新型肺炎感染病例国家" , '各国疫情情况汇总(累计1353)' , width = 1200 ,

C++牛客网编程踩坑记录

梦想与她 提交于 2020-01-28 17:14:23
“不通过 您的代码已保存 段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起 case通过率为0.00%” 老是碰到这样的报错,每次出现的问题也不一样,记录下来,持续更新。 1、短路效应 参考: c++ || && 逻辑短路问题 deque < int > qi ; while (( num[qi.back ( ) ] <= num[i] ) && qi.size ( )) 这句话这么写就会报上述错误,而将逻辑与两端的调换一下就没有问题了。 这是因为当逻辑与前方的语句判断为0时,就会直接跳过,而不去执行后半段语句,如果qi为空的话,上述的语句就会因为取qi.back()下标越界而报错,如果调换之后由于短路效应,先判断了qi.size()从而当qi为空时直接跳过后半句而不会报错。 正确写法: while ( qi.size ( ) && ( num [ qi.back ( ) ] <= num [ i ] )) 来源: CSDN 作者: 但守恒 链接: https://blog.csdn.net/weixin_42687826/article/details/103848933

python之day12(mysql,pymysql,SQLAchemy,paramiko)

时光怂恿深爱的人放手 提交于 2020-01-28 16:40:52
四 mysql   参考博客:http://www.cnblogs.com/wupeiqi/articles/5699254.html   权限管理:     用户管理        创建用户 create user '用户名'@'IP地址' identified by '密码'; 删除用户 drop user '用户名'@'IP地址'; 修改用户 rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';; 修改密码 set password for '用户名'@'IP地址' = Password('新密码') PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)     授权:        show grants for '用户'@'IP地址' -- 查看权限 grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权 revoke 权限 on 数据库.表 from '用户'@'IP地址' -- 取消权限 all privileges 除grant外的所有权限 select 仅查权限 select,insert 查和插入权限 ... usage 无访问权限 alter 使用alter table alter routine 使用alter procedure和drop procedure

Leetcode 题解 - 动态规划

ぃ、小莉子 提交于 2020-01-28 11:13:07
递归和动态规划都是将原问题拆成多个子问题然后求解,他们之间最本质的区别是,动态规划保存了子问题的解,避免重复计算。 斐波那契数列 Leetcode-70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 阶 3. 2 阶 + 1 阶 解法: Java 定义一个数组 dp 存储上楼梯的方法数(为了方便讨论,数组下标从 1 开始),dp[i] 表示走到第 i 个楼梯的方法数目。 第 i 个楼梯可以从第 i-1 和 i-2 个楼梯再走一步到达,走到第 i 个楼梯的方法数为走到第 i-1 和第 i-2 个楼梯的方法数之和。 考虑到 dp[i] 只与 dp[i - 1] 和 dp[i - 2] 有关,因此可以只用两个变量来存储 dp[i - 1] 和 dp[i - 2],使得原来的 O(N) 空间复杂度优化为 O(1) 复杂度。 class Solution { public int climbStairs ( int n ) { if ( n

【Leetcode】338. Counting Bits

前提是你 提交于 2020-01-28 09:00:38
题目地址: https://leetcode.com/problems/counting-bits/ 一道水题。。。 class Solution { public int [ ] countBits ( int num ) { int [ ] dp = new int [ num + 1 ] ; dp [ 0 ] = 0 ; for ( int i = 1 ; i <= num ; i ++ ) { dp [ i ] = ( i & 1 ) + dp [ i >> 1 ] ; } return dp ; } } 时间复杂度 O ( n u m ) O(num) O ( n u m ) 。 来源: CSDN 作者: edWard的算法世界 链接: https://blog.csdn.net/qq_46105170/article/details/104097142