int函数

C++之无子数

一笑奈何 提交于 2020-03-28 13:07:36
题目如下: 1 #include <iostream> 2 3 using namespace std; 4 5 6 bool isThisNumhaveChild(int num); 7 8 9 int main() 10 { 11 int begin_num1,end_num1,nochild_count1 = 0; 12 int begin_num2,end_num2,nochild_count2 = 0; 13 cin >> begin_num1 >> end_num1; 14 cin >> begin_num2 >> end_num2; 15 //分别调用这个函数 16 for(int i = begin_num1; i <= end_num1;i++) 17 { 18 bool flag = isThisNumhaveChild(i); 19 if(!flag) 20 { 21 nochild_count1++; 22 } 23 } 24 for(int i = begin_num2; i <= end_num2;i++) 25 { 26 bool flag = isThisNumhaveChild(i); 27 if(!flag) 28 { 29 nochild_count2++; 30 } 31 } 32 cout << "无子数是" << nochild

[刷题] LeetCode 167 Two Sum II

落花浮王杯 提交于 2020-03-28 09:30:01
要求 升序数组 找到两个数使得它们相加之和等于目标数 函数返回两个下标值 示例 numbers = [2, 7, 11, 15], target = 9 [1,2] index1 = 1, index2 = 2 思路 双重遍历(n2) 遍历+二分搜索(nlogn) 遍历,对撞指针(n) 代码 1 class Solution{ 2 public: 3 vector<int> twoSum(vector<int>& numbers, int target){ 4 5 int l = 0, r = numbers.size()-1; 6 while( l < r ){ 7 8 if(numbers[l]+numbers[r]==target){ 9 int res[2] = {l+1, r+1}; 10 return vector<int>(res,res+2); 11 } 12 else if(numbers[l]+numbers[r]<target) 13 l++; 14 else 15 r--; 16 } 17 throw invalid_argument("no solution."); 18 } 19 }; View Code 类似问题 125 Valid Palindrome 344 Reverse String 345 Reverse Vowels of a String

c++11——auto,decltype类型推导

蓝咒 提交于 2020-03-28 07:57:29
c++11中引入了auto和decltype关键字实现类型推导,通过这两个关键字不仅能够方便的获取复杂的类型,而且还能简化书写,提高编码效率。 auto和decltype的类型推导都是编译器在编译的时候完成的,auto是通过定义auto变量时候给出的表达式的值推导出实际类型,并且 在声明auto变量时必须马上初始化 ;decltype通过表达式的值推导出实际的类型,但是可以只声明变量,而不赋值。 auto类型推导 1. auto推导 auto x = 5; //被编译器推导为int类型 auto pi = new auto(1); //编译器推导为int const auto* v = &x, u = 5; //v为 const int*, u为 const int static auto y = 0.1; //y为static const double auto s; //出错! auto变量不能只声明不初始化 2. auto推导规则 (1)当不声明为指针或引用时,auto的推导结果和初始化表达式抛弃引用和cv限定符后的类型一致;(cv限定符: const volatile限定符) (2)当声明为指针或引用时,auto的推导结果将保留初始化表达式的cv限定符。 int x = 0; auto *a = &x; //a为 int* auto b = &x; //b为 int*

二维数组

爱⌒轻易说出口 提交于 2020-03-28 05:40:44
概念: 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”; 数据结构: int [] [] ; 内存结构图: 初始化方式: 规则二维数组: int[,] Arr = new int[2, 5] { { 1, 2, 3, 5, 6 }, { 1, 2, 3, 4, 5 } }; 不规则二维数组: int [][] arr = new int [3][ ]; 相关算法题: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 class Solution { public bool Find(int target, int[][] array) { int row=0; int col=array[0].Length-1; while(row<=array.Length-1&&col>=0){ if(target==array[row][col]) return true; else if(target>array[row][col]) row++; else col--; } return false; } } 来源: https://www.cnblogs.com/it-dennis/p/9625964.html

C++指针系列

删除回忆录丶 提交于 2020-03-28 05:20:46
写这篇文章总结C++指针的用法。 在C++中最好不要用new/delete来使用指针,而应该用智能指针来管理资源,智能指针就属boost做得最好了。boost的源码和使用方法在网上随便一搜就可以找到,在此就不哆嗦了。下面进入正文—— 最后的指针 1. delete , delete[]的区别   虽然要放弃new/delete的用法,但在这里还是要讲一个值得注意的地方。   int* arr=new int[3]; //不同于new int(3),用[]是指明arr是具有3项的数组,而()是给申明一个整数,其初值为3   在这总情况下,下面两种delete都正确   delete arr; //OR delete [] arr; 2. const不同位置的区别 const int *p = new int(4); //或者 int const *p = new int(4); 这里用const后,就不能 *p = 5 ; 进行赋值。这时*p所指内容不能修改。 int *const p = new int(4); 不能用 p = NULL ; 这里p本身不能被修改 3. 将指针作为参数时的注意事项 如果将一个指针传入函数,并且在这个函数中分配内存后再赋值,那么得用两维指针。如下 void GetValue(int *v) //这个代码是错误的 { v = new int; *v =

Java编程的逻辑 (27) - 剖析包装类 (中)

微笑、不失礼 提交于 2020-03-27 23:42:36
本节继续探讨包装类,主要介绍Integer类,下节介绍Character类,Long与Integer类似,就不再单独介绍了,其他类基本已经介绍完了,不再赘述。 一个简单的Integer还有什么要介绍的呢?它有一些二进制操作,我们来看一下,另外,我们也分析一下它的valueOf实现。 为什么要关心实现代码呢?大部分情况下,确实不用关心,我们会用它就可以了,我们主要是为了学习,尤其是其中的二进制操作,二进制是计算机的基础,但代码往往晦涩难懂,我们希望对其有一个更为清晰深刻的理解。 我们先来看按位翻转。 位翻转 用法 Integer有两个静态方法,可以按位进行翻转: public static int reverse(int i) public static int reverseBytes(int i) 位翻转就是将int当做二进制,左边的位与右边的位进行互换,reverse是按位进行互换,reverseBytes是按byte进行互换。我们来看个例子: int a = 0x12345678; System.out.println(Integer.toBinaryString(a)); int r = Integer.reverse(a); System.out.println(Integer.toBinaryString(r)); int rb = Integer

[C++ STL] deque使用详解

[亡魂溺海] 提交于 2020-03-27 22:57:10
[C++ STL] deque使用详解 目录 一、概述 二、定义及初始化 三、基本操作函数 3.1 容量函数 3.2 添加函数 3.3 删除函数 3.4 访问函数 3.5 其他函数 四、迭代器与算法 五、总结 回到顶部 一、概述 deque(双端队列)是由一段一段的定量连续空间构成,可以向两端发展,因此不论在尾部或头部安插元素都十分迅速。 在中间部分安插元素则比较费时,因为必须移动其它元素。 回到顶部 二、定义及初始化 使用之前必须加相应容器的头文件: #include <deque> // deque属于std命名域的,因此需要通过命名限定,例如using std::deque; 定义的实现代码如下: deque<int> a; // 定义一个int类型的双端队列a deque<int> a(10); // 定义一个int类型的双端队列a,并设置初始大小为10 deque<int> a(10, 1); // 定义一个int类型的双端队列a,并设置初始大小为10且初始值都为1 deque<int> b(a); // 定义并用双端队列a初始化双端队列b deque<int> b(a.begin(), a.begin()+3); // 将双端队列a中从第0个到第2个(共3个)作为双端队列b的初始值 除此之外,还可以直接使用数组来初始化向量: int n[] = { 1, 2, 3, 4

C# 依据鼠标坐标取网页内成员坐标.ie

我的未来我决定 提交于 2020-03-27 19:34:18
C# 根据鼠标坐标取网页内成员坐标.ie 有时候你需要后台获取ie浏览器 鼠标所在位置的元素坐标,然而你使用屏幕坐标是不可行的 所以我们需要把坐标转换成浏览器内坐标 然后再通过elementFromPoint获取网页成员。 private void tmrWatcher_Tick(object sender, EventArgs e) { IntPtr hWnd = WindowFromPoint(MousePosition); dynamic document = GetHtmlDocumentByHandle(hWnd); if (document != null) { Rectangle r = GetHtmlElementPoint(hWnd, MousePosition, document); // 根据鼠标坐标取网页成员坐标 Marshal.FinalReleaseComObject(document); Console.WriteLine(r.X + ":" + r.Y + ":" + r.Width + ":" + r.Height); } } 上面是一个时钟tmrWatcher的Tick回调函数,在上面使用了WindowFromPoint函数 主要是获取 MousePosition所在的窗口句柄,然后再通过GetHtmlDocumentByHandle函数

memset函数用法

流过昼夜 提交于 2020-03-27 16:28:33
转自: https://blog.csdn.net/liwenjia1981/article/details/6304547 头文件准备<string.h> 函数原型  void *memset(void *s, int ch, unsigned n); //n参数是以 字节 为单位,最好用sizeof() 例:memset(array,0,5*sizeof(int)); 用途:memset可以方便的清空一个结构类型的变量或数组。   如:   struct sample_struct   {   char csName[16];   int iSeq;   int iType;   };   对于变量   struct sample_strcut stTest;   memset(&stTest,0,sizeof(struct sample_struct));   如果是数组:   struct sample_struct TEST[10];   则   memset(TEST,0,sizeof(struct sample_struct)*10); 来源: https://www.cnblogs.com/guangzhouhe/p/12580522.html

任意数相加求和

余生长醉 提交于 2020-03-27 06:43:07
在网上看到一端代码,觉得很新颖,特此记录下来以供大家学习参考: 用C#写一个函数。功能如下: 任意给定一组数,例如{12,60,-8,99,15,35,17,18}, 找出任意数相加(不能重复)之后的结果为35(任意设定)的情况 例如:12+8+15; 35; 17+18。 算法如下: private static readonly int[] values = {12,60,8,99,15,35,17,18 }; private const int toltal = 35; private void Test() { Array.ForEach(Array.FindAll(values,x=>x==toltal),Console.WriteLine); Dictionary<string, int> dic = new Dictionary<string, int>(); for (int i = 0; i < values.Length; i++) { dic.Add(values[i].ToString(), i); } GetString(dic); Console.ReadLine(); } private static void GetString(Dictionary<string,int> dd) { Dictionary<string, int> dic =