后台开发编程题目
笨鸟先飞飞飞
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
奇数位递增,偶数位递减,将其变为升序链表(c++)
题目描述:一个链表,奇数位升序偶数位降序,让链表变成升序的。比如:1 8 3 6 5 4 7 2 9,最后输出1 2 3 4 5 6 7 8 9这道题目可以分为三个步骤,一:对链表按照奇偶划分,分为一个升序链表 一个降序链表二:翻转降序链表三:合并两个升序链表代码如下:#include <bits/stdc++.h>using namespace std;struct node{ node * next; int val; node(int v):val(v), next原创 2020-07-24 17:21:50 · 946 阅读 · 0 评论 -
c++实现atoi以及itoa函数
atoi函数int atoi(char * str)将字符串转为整形数,跳过前面的空格字符,直到遇上数字或者正负号才开始进行转换,而在遇到非数字或者字符’\0’结束转化,然后返回结果(int)。当正溢出时返回INT_MAX,负溢出返回INT_MIN题目思路比较简单,但是有挺多细节地方:跳过前面的空格使用stringstream >> string正负号处理将第一个有效字符单独拿出来讨论,为+,为-,为数字,为其他。溢出处理int的范围是[−231,231−1][-2^{31原创 2020-06-27 17:26:22 · 713 阅读 · 0 评论 -
求数组两个元素与(&)、异或操作最大值
问题一: 给定一个数组A[n],求解max(A[i] & A[j]), 其中i!=j思路:暴力解法时间复杂度是O(n2)O(n^2)O(n2), 那么能不能找到其他方法优化时间复杂度呢?下面从不同角度出发去考虑:规律法对于&运算,如果想要最大化结果,那么尽可能使得高bit位的运算结果为1。考虑最高位,很容易想到,只有最高位都为1的两个元素运算才能保证运算结果中最高位为1。另外一种情况,还是针对最高位,如果找不到两个元素可以使得运算结果中的最高位为1呢,那么结果中的最高位只能原创 2020-06-25 17:53:12 · 2024 阅读 · 0 评论
分享