num

剑指offer-数组中数字出现的次数

旧城冷巷雨未停 提交于 2020-01-31 02:44:22
问题一:数组中只出现一次的两个数字 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 源码: (num&1)记得打括号,记得打括号,记得打括号。重要的事情说三遍。 class Solution { public: void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) { int nlength = data.size(); if(nlength<2) return; int sum = 0; for(int i=0; i<nlength; i++){ sum ^= data[i]; } int index = findfirst(sum); // num1=num2=0; for(int i=0; i<nlength; i++){ if(isbit(data[i], index)) *num1 ^= data[i]; else *num2 ^= data[i]; } } int findfirst(int num){ int index=0; while((num&1)==0){ num = num>>1; index++; } return index; } bool isbit(int num, int index){ num = num>>index;

【leetcode】3无重复字符的最长子串

◇◆丶佛笑我妖孽 提交于 2020-01-31 02:30:07
现附上自己丑丑的代码,第一次自己通过(呸),然鹅用时贼长,明天去研究缩短时间 class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ if len(s)==0: return 0 snum=0 num=0 s2=[] j=1 i=0 while(1>0): if s[i] not in s2: num=num+1 s2.append(s[i]) i=i+1 if num>snum: snum=num else: del s2 s2 = [] i=j j=j+1 num=0 if i > (len(s)-1): break return snum 来源: CSDN 作者: 悔棋不语真君子 链接: https://blog.csdn.net/wind_day/article/details/104119374

寻找最低数

安稳与你 提交于 2020-01-31 01:29:52
题目描述 给你一个正整数A(1<=A<=100),输出A的最低数。 例如,给你A=26,我们可以将A化成二进制为11010,则A的最低数是10,输出10的十进制为2。 再例如,给你A=88,我们可以将A化成二进制为1011000,则A的最低数是1000,输出为8。 输入 输入包含多组测试样例。每行输入一个正整数A(1<=A<=100)。当输入0时,输入结束。 输出 对于每一个输入,输出对应的最低数。 样例输入 Copy 26 88 0 样例输出 Copy 2 8 解题思路:让输入的num与1按位相与,用于判断最后一位是否为1,如果一直不为1,t自增,num右移一位,通过循环统计出t的个数,再用快速幂输出结果。 快速幂的递归模板(个人感觉比较好理解)可以参考如下: https://blog.csdn.net/Harington/article/details/87602682 代码如下: # include <iostream> # include <algorithm> # include <vector> # include <string> # include <math.h> using namespace std ; typedef long long ll ; ll quickPow ( ll n , ll m ) { ll res = 1 ; if ( m == 0 )

【线段树】牛客 k小数查询 (区间线段树套权值线段树)

社会主义新天地 提交于 2020-01-31 01:19:26
K小数查询 题意: 给一个长度为 n 数列 A ,然后m个操作,有如下两种: · 1 l r x,表示对i \(\in\) [l,r],令 \(A_i=min(A_i,x)\) · 2 l r k,表示询问区间[l,r]中第 k 小的数。 输入描述: 第一行输入两个整数 \(n,m(1≤n,m≤8×10^4)\) 。 接下来一行 n 个整数描述数组 \(A(1≤A_i≤n)\) 。 接下来 m 行每行描述一个操作,操作格式与题面中相同,保证 \(1≤l≤r≤n,1≤k≤r−l+1,1≤x≤10^9\) 输出描述: 对于每组询问,输出一个整数表示答案。 官方题解: 考虑区间线段树套权值线段树求区间k小值的算法:对 \([1,n]\) 建线段树,每一个线段树节点 \([l,r]\) ,用一棵动态开点的权值线段树记录 \([l,r]\) 中每种权值出现了多少次。 如果能够维护这样的数据结构,询问就可以转化为在 \(O(logn)\) 棵权值线段树上二分,能在 \(O(lon^2n)\) 的时间里得到答案。 修改时,首先和普通的区间线段树一样,定位到某些节点[l,r]:这次修改相当于把内层线段树中所有大于等于 \(x\) 的数并到 \(x\) 的位置,这可以被转化成 \(t+1\) 次线段树单点修改操作,其中 \(t\) 为被并入的节点个数。把这 \(t+1\) 次修改应用到内层线段树 \

BERT主体模型modeling.py学习记录

坚强是说给别人听的谎言 提交于 2020-01-31 01:07:04
```python 1 、配置 class BertConfig ( object ) : """Configuration for `BertModel`.""" def __init__ ( self , vocab_size , hidden_size = 768 , num_hidden_layers = 12 , num_attention_heads = 12 , # attention的头数 class BertConfig ( object ) : """Configuration for `BertModel`.""" def __init__ ( self , vocab_size , # 词典大小 hidden_size = 768 , # 隐层神经元个数 num_hidden_layers = 12 , # Transformer的层数12 num_attention_heads = 12 , attention的头数 intermediate_size = 3072 , # 中间层神经元个数 hidden_act = "gelu" , # 激活函数 hidden_dropout_prob = 0.1 , # 隐层dropout的比例 attention_probs_dropout_prob = 0.1 , # attention里面dropout比例

关于random

ぃ、小莉子 提交于 2020-01-31 00:49:51
import random 需要导入random模块 random.sample(many,num):表示多个字符中(many)选取指定数量(num)的字符组成新字符串,返回的是一个列表 >>> import random >>> import string >>> random.sample(string.digits,4) #生成4个随机的数字 ['2', '3', '0', '9'] >>> random.sample(string.ascii_letters,4) #生成4个随机的字母 ['i', 't', 'w', 'v'] 来源: CSDN 作者: 爱学习的哆啦A梦 链接: https://blog.csdn.net/weixin_44232308/article/details/104119182

Bash Shell脚本

元气小坏坏 提交于 2020-01-31 00:37:45
echo 1. echo "It is $num" 等价于 echo It is $num 且$num为变量的值。 2. echo 'It is $num' 则代表了"It is $num"这个字符串。 来源: CSDN 作者: Chernyang 链接: https://blog.csdn.net/qq_42890800/article/details/104117558

用python如何把一个数字拆开再拼接上

試著忘記壹切 提交于 2020-01-31 00:28:51
拼接一个数字 比如说现在有一个List,L=[1,2,3,4,5]。把这个list里面的数字拿出来拼上。可以用reduce函数,也可以把list里面的元素转换成字符类型再拼接上。 第一种做法 from functools import reduce def f ( m , n ) : return ( 10 * m + n ) L = [ 1 , 2 , 3 , 4 , 5 ] k = reduce ( f , L ) print ( k ) 第二种做法 L = [ 1 , 2 , 3 , 4 , 5 ] m = '' for x in L : m = m + str ( x ) print ( int ( m ) ) 将一个数字拆开 数字不是interator,而字符串是interator。所以可以先将数字转换成字符串类型,再一个个取出其中的元素。还有一种方法是用循环把数字拆开。 第一种方法 num = 123456 L = [ ] num = str ( num ) for x in num : L . append ( int ( x ) ) print ( L ) 第二种方法 num = 123456 L = [ ] m = '' while num > 0 : L . append ( num % 10 ) num = num // 10 print ( L )

深度学习入门之5--网络学习相关技巧2(权重设置)

ぃ、小莉子 提交于 2020-01-31 00:12:14
目录 1、简述 2、sigmiod权重初始值 3、relu权重初始值 4、案例:不同初始值比较 4.1common文件夹 4.2ch06文件夹 4.2.1weight_init_compare.py 4.3结果 该文章是对《深度学习入门 基于Python的理论与实现》的总结,作者是[日]斋藤康毅 该文将介绍权重的初始值的相关问题。 1、简述 在神经网络的学习中,权重的初始值特别重要。设定什么样的权重初始值,经常关系到神经网络的学习能否成功。且会影响到神经网络学习的速度。 权值衰减:就是一种以 减小权重参数的值 为目的进行学习的方法。通过减小权重参数的值来 抑制过拟合 的发生。 因此,我们在对权值进行初始化的时候,一开始便可以将初始值设置较小,使用Gauss分布生成的值。但是权重的值也不能全部设置为0(或者权值全部相同),将权重初始值设为0的话,将无法正确进行学习。这是因为在误差反向传播法中,所有的权重值都会进行相同的更新,没有意义。 2、sigmiod权重初始值 下面使用sigmoid函数来举例,观察 权重初始值 是如何影响 隐藏层的激活值 的分布的。 目的:通过改变标准差,观察激活函数的变化 例:向一个5层神经网络(激活函数使用sigmoid函数)传入随机生成的输入数据,用直方图绘制各层激活值的数据分布。高斯分布的标准差分别为1, 0.01, 1/sqrt(n)

PAT A1077 Kuchiguse

穿精又带淫゛_ 提交于 2020-01-30 20:21:27
PAT A1077 Kuchiguse 流程图 Created with Raphaël 2.2.0 开始 输入N, 先输入前两个字符串 计算前两个字符串后缀相同的字符个数, 用num表示 之后每个都跟第一个比较,修改num的值 num > 0? 输出相同后缀(用第一个字符串以及num输出) 结束 输出“nai” yes no 代码 //num:相同的字符个数 len1:第一个字符串的长度 //len2:第二个以及后面字符串的长度 lenmin:取前两个的最小长度 // temp1:第一个字符串 temp2:第二个及以后的字符串 //scanf与 getchar()要连着用,因为 [^\n]只判断换行符,不输入换行符 # include <cstdio> # include <cstring> int main ( ) { int N , num = 0 , len1 , len2 , lenmin ; char temp1 [ 260 ] , temp2 [ 260 ] ; //*********输入N以及前两个字符串*********// scanf ( "%d" , & N ) ; getchar ( ) ; scanf ( "%[^\n]" , temp1 ) ; getchar ( ) ; len1 = strlen ( temp1 ) ; scanf ( "%[^\n]