数据结构与算法
文章平均质量分 88
Senvenno27
Life is not easy, just enjoy IT.
展开
-
C/C++中关于qsort的使用
C/C++中有一个快速排序的标准库函数 qsort ,在stdlib.h 中声明,其原型为:void qsort(void *base, int nelem, unsigned int width, int ( * pfCompare)( const void *, const void *)); 使用该函数,可以对任何类型的一维数组排序。该函数参数中,base 是待排序数组的起始地址,转载 2017-08-08 21:10:51 · 267 阅读 · 0 评论 -
求任意整数n的阶乘
主要思想: 初始值为1. 然后把1放入数组存着,(按位存,比如999,即f[0]=9, f[1]=9, f[2]=9) 然后数组的每一位都乘以2,(注意还有进位) 然后数组的每一位都乘以3,… 然后数组的每一位都乘以n.最后从后往前,输出每一位即是结果。注意,数组后面从非0开始计算。即最高位就是第一个非0位。#include <iostream>#include <string.h>#原创 2017-09-21 10:37:46 · 5103 阅读 · 0 评论 -
大数取模:一般取模+技巧取模+快速幂取模+欧拉函数(费马小定理)
一般取模运算: (a^n)%m。 我们可以改写为(a^n)%m= ((a%m)^n)%m, 即循环n次。 缺点:低效,循环了n次。int exp_mod(int a,int n,int m){ a = a%m; int temp = 1; while(n--) { temp = temp * a; temp = temp % m原创 2017-09-02 18:03:54 · 14926 阅读 · 2 评论 -
度度熊回家:一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。
时间限制:1秒 空间限制:32768K 一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。 但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离? 输入描述:输入一个正整数N, N <= 50。接下来N个整数表示坐标,正数表示X轴的正方向,负数表示X轴的原创 2017-08-22 16:04:36 · 1595 阅读 · 3 评论 -
搜狐[编程题]彩色宝石项链.有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等
时间限制:1秒 空间限制:32768K有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等。有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石这五种,我要你从项链中截取连续的一小段还给我,这一段中必须包含所有的这五种宝石,剩下的部分你可以带走。如果无法找到则一个也无法带走。请帮助学者找出如何切分项链才能原创 2017-08-27 18:30:19 · 3586 阅读 · 0 评论 -
搜狐[编程题] 袋鼠过河.一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个
时间限制:1秒 空间限制:32768K 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表袋鼠下一跳最多能够跳5米,如果为0,就会陷进去无法继续跳跃。河流一共N米宽,袋鼠初始位置就在第一个弹簧上面,要跳到最后一个弹簧之后就算过河了,给定每个弹簧的力原创 2017-08-27 20:23:25 · 4243 阅读 · 3 评论 -
百度:度度熊想去商场买一顶帽子,买第三便宜的帽子
度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 输入描述: 首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)输出描述: 如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1输入例子1: 10 10 10 10 10 20 20 30 3原创 2017-08-22 15:04:25 · 527 阅读 · 0 评论 -
单链表的逆转:迭代形式和递归形式
struct Node{ int num; Node *next;}; // 注意这个地方,这个分号占一半的分!!!1.迭代版的:(明明知道是这样子,但写的时候,要想很久,常考,背!!!)/* 注意 head是头结点 */Node *ReverseLink( Node *head){ if(NULL == head) return NULL;原创 2017-09-07 13:33:56 · 836 阅读 · 0 评论 -
长沙智慧眼算法工程师笔试题
1. C语言中,static的作用是什么? a.隐藏:当同时编译多个文件时,所有未加stitic前缀的全局变量和函数都具有全局可见性。用static修饰可以在不同文件中定义同名函数和同名变量,而不必担心命名冲突。 b.默认初始化为0:未初始化的全局变量和未初始化的静态变量是存储在BSS段(未初始化数据段) c.保持局部变量内容的持久:静态局部变量只进行一次初始化,且具有“记忆性”,但是,虽然它的原创 2017-08-08 15:26:09 · 514 阅读 · 0 评论 -
求整数n的二进制数 1的个数,0的个数
#include <iostream>// 这个只能求正整数的0的个数int ZeroN(int n){ int count = 0; while(n > 1) { if(0 == n%2) count++; n >>= 1; } return count;}// 可正可负,注意,负数是用补码存的原创 2017-09-21 11:06:52 · 1936 阅读 · 0 评论