摘要:
异或运算是位运算的一种。我们知道位运算速度很快,同时因其运算的特点,给我们带来不同的解题思路来处理问题。异或运算,可以用来实现两个数的交换,而不必担心越界问题;异或运算可以找出数组中只出现一次的值;异或运算可以找出从一个数组中任意删除的一个值。 1 #include 2 3 using namespace std; 4 5 void main() 6 { 7 //交换a与b 8 int a = 10; 9 int b = 5;10 a = a ^ b;11 b = a ^ b;12 a = a ^ b;13 cout<<a<<","... 阅读全文
摘要:
寻找单项链表中间那个元素,如果有两个则取前面一个。 1 #include 2 #include 3 4 using namespace std; 5 6 template 7 struct Node 8 { 9 T m_nData;10 Node *m_pNext;11 };12 13 template14 Node* createList(const T myArray[], const int &n)15 //创建链表16 {17 assert(myArray && n >0);18 Node* pHead = new Node;19 No... 阅读全文
摘要:
长度为n的整形数组,找出其中任意n-1个乘积最大的那一组,只能用乘法,不可以用除法。要求对算法时间复杂度和空间复杂度进行分析。#include #include #include #include int ret1Index(const int myArray[], const int n)//返回1个不包含在n-1个因子乘积最大组合中的因子下标{ int negNum = 0;//负数个数 for (int i = 0; i = 0 && myArray[i] abs(myNum)) { ind... 阅读全文