int函数

Go语言入门(四)Map&函数

只愿长相守 提交于 2020-03-17 21:29:20
map&函数 map类型 map的申明和定义 map是一个key-value的数据结构,是引用类型的数据结构,需要初始化 初始化的时候容量可以定义,也可以不定义 map必须初始化才能使用,否则会panic var a map[key的类型]value的类型 func defineMap() { var user map[string]int = make(map[string]int) user["abc"] = 38 fmt.Printf("user:%v\n",user) a := make(map[string]int) a["jack"] = 1001 a["handsome"] = 1002 a["shark"] = 1003 //根据key获取value fmt.Printf("a[jack]=%v\n",a["jack"]) } Map的使用 判定map的长度使用len 如何判定map指定的key是否存在: value,ok := map[key] # 用户角色判定 var whiteUser map[int]bool = map[int]bool { 34123: true, 3456334: true, 1:true, } func isWhiteUser(UserId int) bool { _,ok := whiteUser[UserId] return ok

C#各版本更新功能代码示例

爱⌒轻易说出口 提交于 2020-03-17 20:54:47
代码演示C#各版本新功能 C#各版本新功能其实都能在官网搜到,但很少有人整理在一起,并通过非常简短的代码将每个新特性演示出来。 文章目录 代码演示C#各版本新功能 1. C# 2.0版 - 2005 1.1 泛型 1.2 分部类型 1.3 匿名方法 1.4 可以为null的值类型 1.5 迭代器 1.6 协变和逆变 2. C# 3.0版 - 2007 2.1 自动实现的属性 2.2 匿名类型 2.3 查询表达式(LINQ) 2.4 Lambda表达式 2.5 表达式树 2.6 扩展方法 2.7 var 2.8 分部方法 2.9 对象和集合初始值设定项 3. C# 4.0版 - 2010 3.1 dynamic 3.2 命名参数/可选参数 3.3 泛型中的协变和逆变 3.4 类型等效、内置互操作类型 4. C# 5.0版 - 2012 4.1 async/await 4.2 调用方信息 5. C# 6.0版 - 2015 5.1 静态导入 5.2 异常筛选器 5.3 自动初始化表达式 5.4 Expression-bodied 函数成员 5.5 Null传播器 5.6 字符串内插 5.7 nameof表达式 5.8 索引初始值设定项 6. C# 7.0版本 - 2017 6.1 out变量 6.2 元组和析构函数 6.3 模式匹配 6.4 本地函数 6.5 更多的expression

c语言 简单实现x的n次方

允我心安 提交于 2020-03-17 16:22:28
本题要求实现一个计算x ​n ​​ (n≥0)的函数。 函数接口定义: double mypow ( double x , int n ) ; 函数mypow应返回x的n次幂的值。题目保证结果在双精度范围内。 裁判测试程序样例: # include <stdio.h> double mypow ( double x , int n ) ; int main ( ) { double x ; int n ; scanf ( "%lf %d" , & x , & n ) ; printf ( "%f\n" , mypow ( x , n ) ) ; return 0 ; } /* 你的代码将被嵌在这里 */ 我的答案: double mypow ( double x , int n ) { double num = 1 ; //注意为double型 for ( int i = 1 ; i <= n ; i ++ ) { num = x * num ; //我开始写的是x*x,发现n=1时不行 } return num ; } 简单题,就不多说了 来源: CSDN 作者: inooll 链接: https://blog.csdn.net/inooll/article/details/104922178

ACWING16. 替换空格(剑指offer)

人走茶凉 提交于 2020-03-17 10:43:16
请实现一个函数,把字符串中的每个空格替换成"%20"。 你可以假定输入字符串的长度最大是1000。 注意输出字符串的长度可能大于1000。 样例 输入:“We are happy.” 输出:“We%20are%20happy.” 思路: 为了节省空间,可以一开始就分析出新字符串的长度,并且从最后一个值开始插入。 class Solution { public : string replaceSpaces ( string & str ) { int n = str . length ( ) ; string str2 ; int cnt = 0 ; for ( int i = 0 ; i < n ; i ++ ) { if ( str [ i ] != ' ' ) str2 + = str [ i ] ; else str2 + = "%20" ; } return str2 ; } } ; 来源: CSDN 作者: tomjobs 链接: https://blog.csdn.net/tomjobs/article/details/104852572

LeetCode:最接近的三数之和

旧城冷巷雨未停 提交于 2020-03-17 10:03:06
刷题神器:LeetCode官方网站 一、题目还原 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 二、解题思路 ①三数之和的思路和上一题一样 Solution 2 双指针 ① EdgeCase:数组长度小于3或者等于三但是相加不等于0的,返回空 ② 将数组进行排序 ③ 定义左右两个下标,记为left = 0和right = nums.length - 1 ④ 以第一个数num为基准,left和right分别从第二个数和最后一个数开始计算,如果num+nums[left]+nums[right] == 0则left ++; right --;注意,如果left的下一个与之前数字相同继续left++,right同理 ⑤ 注意每次循环的基准数如果和上一次相同直接跳过进行下一次循环 ② 定义一个diff表示三数之和与target的差,如果差越小,就取当前的和 三、代码展示 ① main函数 public static void main ( String [ ] args ) { int

[剑指Offer]30-包含min函数的栈

杀马特。学长 韩版系。学妹 提交于 2020-03-17 09:57:11
题目 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 题解 辅助栈记录当前最小值。 代码 import java.util.Stack; public class Main { private static Stack<Integer> s=new Stack<>();// private static Stack<Integer> minS=new Stack<>(); public static void main(String[] args) { StackWithMin s=new StackWithMin(); s.push(1); s.push(2); s.pop(); s.push(5); s.push(4); System.out.print(s.min()); } public static void push(int node) { s.push(node); if(minS.empty()||node<minS.peek()) {// minS.push(node); } else { minS.push(minS.peek()); } } public static void pop() { s.pop(); minS.pop(); } public static int top() { return

LeetCode 50 Pow(x, n) (快速幂)

霸气de小男生 提交于 2020-03-17 09:49:54
LeetCode 50 Pow(x, n) (快速幂) 解题思路: 本题最直观的方法采用暴力解法,既用n个x相乘,但是最后一定会超时,因为有个测试用例用的n = INT_MAX;所以本题采用快速幂的解法。 首先,如果我们要求值 x n x^{n} x n ,可以将其分解为 x n / 2 ∗ x n / 2 x^{n/2}*x^{n/2} x n / 2 ∗ x n / 2 ,此时我们假设 x n / 2 x^{n/2} x n / 2 是已知的,然后递归的求 x n / 2 = x n / 4 ∗ x n / 4 x^{n/2} = x^{n/4}*x^{n/4} x n / 2 = x n / 4 ∗ x n / 4 一直求道n为0为止,此时已经是0次幂了,所以直接返回1.0即可。 本题有个很坑的点,其实完全可以在myPow函数里写递归式,但是直接超时了,原因就是n不能用int存,会溢出,需要转成long long。。。自己参数给的int 结果int存不下,,可能是我太笨,想不太明白。。希望能有dalao指点。 源代码: class Solution { public : double fastpow ( double x , long long n ) { if ( n == 0 ) { return 1.0 ; } double half = fastpow ( x , n

利用回溯法解决八皇后问题(循环)

独自空忆成欢 提交于 2020-03-17 08:02:45
利用回溯法解决八皇后问题(循环) 2.用循环解决 # include <stdio.h> # include <stdlib.h> int a [ 20 ] , n , sum ; void output ( ) //输出 { int i , j ; for ( i = 1 ; i <= n ; i ++ ) { for ( j = 1 ; j <= n ; j ++ ) { if ( a [ i ] == j ) printf ( " Q" ) ; else printf ( " *" ) ; } printf ( "\n" ) ; } printf ( "\n" ) ; } int check ( int k ) //检查当前位置是否可放 { int i ; for ( i = 1 ; i <= k - 1 ; i ++ ) //abs(a[i] - a[k])==abs(i - k))用于判断当前位置是否在前面任一皇后的左下斜线或右下斜线方向 //(a[i]==a[k])用于判断当前位置是否在前面任一皇后的正下方 if ( ( abs ( a [ i ] - a [ k ] ) == abs ( i - k ) ) || ( a [ i ] == a [ k ] ) ) return 0 ; //不可以放 return 1 ; //可以放 } void backdate (

递归(走楼梯,阶乘)

隐身守侯 提交于 2020-03-17 03:51:21
递归我记得,我最先接触的递归的例子是汉诺塔。 但是本文现在不讲汉诺塔,嘿嘿! 我们从简单的开始 递归现象发生于递归函数,递归函数是直接或者间接的调用自己本身的这么一种函数。 举个例子 求从1连成乘到n的积,也就是求 n! 。其中就是重复的去用一个数乘一个数,接着再乘一个数,一直乘到100;我们用递归完成, public int recursion ( int i , int n ) { if ( i == n ) return n ; return i * recursion ( i + 1 ) ; } 函数recursion自己调用自己,这就是递归现象。 递归是一种很棒的算法思想,你只需要找到复杂问题中最小的重复单元或者说可能性单元,然后复杂的细节就交给计算机吧! 例子二,说有一个n级的台阶,每一步有两种走法,每次跨一步或者跨两步,问从第一阶开始,走到最后一阶有几种不同的走法。 我们知道,每一次向前都有两种走法,一阶或者两阶。问走到最后一阶有多少种走法,走到最后一阶就是说每次一步或者两步的一种组合只要能走到最后一阶,就算一种成功的组合。 每一步两种可能性,有n个台阶。问题是复杂的,但是其中最小的重复单元很明显,就是每次所面临的两种可能性,最后需要满足组合步数等于台阶数就行。 int ans = 0 ; //定义一个全局变量 记录符合要求的组合数 public void

算法实践:查找最接近的元素(最近不能相等)

左心房为你撑大大i 提交于 2020-03-17 03:23:23
查找最接近的元素(最近不能相等) 描述 查找最接近的元素 输入 第一行包含一个整数n,为非降序列长度。1 <= n <= 100000。 第二行包含n个整数,为非降序列各元素。所有元素的大小均在0-1,000,000之间。 第三行包含一个整数m,为要询问的给定值个数。1 <= m <= 10000。 接下来m行,每行一个整数,为要询问最接近元素的给定值。所有给定值的大小均在0-1,000,000之间。 (注意:最接近但是不能相等。输入保证有解) 输出 m行,每行一个整数,为最接近相应给定值的元素值,保持输入顺序。 若有多个值满足条件,输出最小的一个。 样例 3 2 5 8 2 10 5 8 2 难度 高 解法 要求找到与target最接近,但是不能相等的数,意味着要严格思考检查目标的左右边界最接近的值的位置。 lowerBound函数:在包含n个元素的、从小到大排序的int数组nums里查找比给定整数target小的,下标最大的元素。找到则返回其下标,找不到则返回-1------二分查找 upperBound函数:在包含n个元素的、从小到大排序的int数组nums里查找比给定整数target大的,下标最小的元素。找到则返回其下标,找不到则返回-1------二分查找 先判断target如果比第一个小,比最后一个大的情况,然后是分别有左右边界的情况,接着返回有左右边界中最接近的那个数