长度

【LeetCode】43. Multiply Strings(C++)

北城余情 提交于 2019-12-08 06:24:09
地址: https://leetcode.com/problems/multiply-strings/ 题目: Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2 , also represented as a string. Example 1 : Input : num1 = “2”, num2 = “3” Output : “6” Example 2 : Input : num1 = “123”, num2 = “456” Output : “56088” Note : The length of both num1 and num2 is < 110. Both num1 and num2 contain only digits 0-9 . Both num1 and num2 do not contain any leading zero, except the number 0 itself. You must not use any built-in BigInteger library or convert the inputs to integer directly. 理解: 应该是一道很经典的题了

【C++】sprintf 与sprintf_s

主宰稳场 提交于 2019-12-04 21:37:35
(转自: http://blog.sina.com.cn/s/blog_4ded4a890100j2nz.html) 将过去的工程用VS2005打开的时候。你有可能会遇到一大堆的警告:warning C4996。比如:warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.      原因是Visual C++ 2005使用了更加安全的run-time library routines。新的Security CRT functions(就是那些带有“_s”后缀的函数): http://msdn2.microsoft.com/en-us/library/wd3wzwts(VS.80).aspx 那么如何搞定这些警告呢: 方法一:手工将原来的旧函数替换成新的Security CRT functions。 方法二:屏蔽这个警告。 在预编译头文件stdafx.h里(注意:一定要在没有include任何头文件之前)定义下面的宏: #define _CRT_SECURE_NO_DEPRECATE或者#param warning(disable

切片

≯℡__Kan透↙ 提交于 2019-12-04 11:31:51
切片 /* 不定长,但是定类型 就是 切片 */ 初始化一个切片 //初始化一个没有元素的整型切片 var a[]int =[]int{} //make方式创建一个0长度的整型切片 a :=make([]int,0) 创建和查询切片 1 package main 2 3 import "fmt" 4 5 func main(){ 6 7 8 9 //创建一个普通切片 10 var x =[10]int{1,2,3,4,5,6,7,8,9,10} 11 12 //这个是数组的切片 切出来的一部分内容。 13 // 切片的底层是一个数组 14 //切片 是顾头不顾尾 15 16 //x1 :=x[0:5] //含头不含尾 17 // x2 :=x[:5] //默认从开头截取 18 //x3 :=x[5:] //默认截到最后 19 x4 :=x[:] //从头到尾 20 fmt.Printf("x的类型是%T,数值是%v\n",x,x) //x的类型是[10]int,数值是[1 2 3 4 5 6 7 8 9 10] 21 fmt.Printf("x4的类型是%T,数值是%v\n",x4,x4) //x4的类型是[]int,数值是[1 2 3 4 5 6 7 8 9 10] 22 23 24 25 26 //也可以 对切片 进行 截取 切片的切片 27 xx4 := x4[5:7] 28

NIKKEI Programming Contest 2019-2 Task D. Shortest Path on a Line

前提是你 提交于 2019-12-04 02:53:52
Observations ① 从 $1$ 到 $N$ 的最短路一定是不走回头路的。所谓回头路是指从序号大的点走到序号小的点。 证明 :首先,任意从 $1$ 到 $N$ 的路径的最后一步一定不是回头路。假设存在一条从 $1$ 到 $N$ 的最短路走了回头路,并设这条路最后一次回头是从 $u$ 到 $v$ 且从 $v$ 开始直到终点经过的点依次是 $v = v_0, v_1, \dots v_k = N$。我们有 $v < u < N$,$v = v_0 < v_1 < v_2 <\dots < v_k = N$ 且 $v_i \ne u$。设 $v_i < u$ 而 $v_{i+1} > u$ 则必然存在边 $(u, v_{i+1})$ 和边 $(v_i, v_{i+1})$ 长度相等,因此走 $u, v_{i+1}, \dots, v_{k}$ 更优,矛盾! 为了便于描述,以下用 $(u, v, c)$ 表示连接 $u, v$,长为 $c$ 的无向边,用 $(u \to v, c)$ 表示从 $u$ 到 $v$ 长为 $c$ 的有向边。 从上述证明可以得出推论:将原无向图按下述方式改造成有向图,从 $1$ 到 $N$ 的最短路长度不变: 以下设 $1 \le u < v \le N$。将原图中的无向边 $(u, v, c)$ 删除,加入有向边 $(u \to v, c)$。

内积空间

爷,独闯天下 提交于 2019-12-03 14:34:10
一 向量空间与内积空间 向量空间也称作线性空间,向量空间对向量线性组合封闭。如果 为向量空间 V 的一组基,则 仍在向量空间 V 中。在向量空间中,仅定义了数乘与向量加法运算。在此基础上,定义内积运算,通过内积运算,可以求解向量长度,向量间角度等概念,这就定义了内积空间。设向量为X, Y,X 长度定义为 , X,Y 间角度定义为 。 二 内积定义 在 空间上,有如下矢量 和 ,在几何中,矢量长度表示原点到其端点的距离,根据 Pythagorean 定理,有 。定义内积 ,则矢量 X 长度等于 ,这样建立其内积与长度关系。 在复矢量空间 中,有如下矢量 和 ,定义内积 。 如何理解复矢量内积?首先,针对单个复数 , 有 ,使用共轭乘法可求解复数长度。当两个不同复数共轭乘法时, ,其结果仍然为一个复数,可分解为实数分类与虚数分量。复矢量内积就是对所得复数相加得到一个结果,最终结果一般包括实数分量与虚数分量部分,即一般结果为 形式。 内积满足如下性质: 1)正性:如果 v 为非零向量, <v, v> > 0, 该性质对实矢量与复矢量均成立; 2)共轭对称性: ,针对复矢量,该等式成立,针对实矢量,共轭运算等于本身,则内积运算对称; 3)均匀性: , 针对复矢量时 c 为复数,实矢量时 c 为实数; 4)线性:<u + v, w> = <u, w> + <v, w>, <u, v + w>

GO基础之切片

假装没事ソ 提交于 2019-12-03 07:35:28
一、什么是切片 Go语言切片是对数组的抽象。 Go数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"); 与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。 切片本身没有任何数据,它们只是对现有数组的引用。 切片与数组相比,不需要设定长度,在[ ]中不用设定值,相对来说比较自由 从概念上面来说slice像一个结构体,这个结构体包含了三个元素: 切片的结构: 〇指针,指向数组中slice指定的开始位置 〇长度,SPslice的长度 〇最大长度,也就是slice开始位置到数组的最后位置的长度 二、切片的使用 切片的声明 s1 := make([]int, 5) s2 := make([]int, 5, 7) 切片的初始化: nums := []int{1, 2, 3, 4, 5} len()和cap()函数 1、 切片的长度是切片中元素的数量。 2、 切片的容量是从创建切片的索引开始的底层数组中元素的数量。 3、 切片是可索引的,并且可以由len()方法获取长度,切片提供了计算容量的方 法cap(),可以测量切片最长可以达到多少。[数组计算cap()结果与len()相同] 4、 切片实际的是获取数组的某一部分,len切片<=cap切片<=len数组 package main import "fmt"