
简单算法题
北峰先森
软件工程在读
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1
1、题目: 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = “leetcode”返回 0.s = “loveleetcode”,返回 2. 2、算法简单说明:利用C++来写的算法,题目很简单,可以用到C++容器中string,利用迭代器逐个比较查找出重复出现的字符串,设置一个count计数器,如果超过1个就进行...原创 2018-11-24 09:37:59 · 11109 阅读 · 4 评论 -
CVTE笔试题,查找左边元素最少的分段,要求都比右边分段元素 小或等于
CvTe笔试题:1、读入一个不定长数组,将其分不打乱顺序分为两段left 和right要求:1、分段中left 段中元素 都 比right段中元素 小或等于2、不打乱元素顺序3、空间复杂度0(1)4、输入数据为以空格分段的整数: 输入示例: 5 0 3 8 6 输入示例: 3 解释:5 0 3 都比 8 6小2、解题思路1、从左边第一个元素开始分段遍历...原创 2019-09-05 20:57:49 · 247 阅读 · 0 评论 -
数组中有多个整型数据和多个零元素,要求去除零元素而整型数据的相对位置不改变
解题思路:快慢指针法(ps:用数组下标模拟指针操作,主要目的是为了定位元素)1、令慢指针fornt 从数组第一个元素开始遍历,以次找到为零的元素。2、快指针 next 从慢指针后一位 fornt+1 出发,遍历寻找不为零的元素。3 、找到后,用快指针元素赋值给慢指针元素,同时快指针赋值为04、循环步骤1、2、3,当快指针越界的时候退出循环,完成任务。主要算法思想为以上所述,但控制循环终...原创 2019-09-02 20:13:54 · 250 阅读 · 0 评论 -
阿里笔试题——合并区间
一、题目说明如下图阿里给出的数据输入处理代码,我们只需要写核心的判断合并代码!前面数据为已知的有序闭区间,在加上后来输入的一组闭区间进行合并区间,最后输出二、代码#include <iostream>#include <stdio.h>#include <list>#include <string>#include &l...原创 2019-04-13 16:26:32 · 468 阅读 · 1 评论 -
阿里面试题 ——输入一个字符串,输出所有的排列
一、题目解释输入一个字符串,输出其所有的排列组合。PS:图片说明VS2013环境下的代码:#include <iostream>#include <vector>#include <string>#include <algorithm>#include <time.h>using namespace st...原创 2019-04-13 16:20:12 · 1669 阅读 · 1 评论 -
蓝桥杯输入学生姓名,性别,年龄,成绩进行排序输出
PS:该程序是在VS2013下运行的,在蓝桥杯练习系统上也通过了测试。#include<iostream>#include<string>using namespace std;typedef struct student{ string _name; string _sex; int _age; int _score;}stu;int ma...原创 2019-03-13 09:27:57 · 890 阅读 · 0 评论 -
奶牛分苹果算法
一、题目描述链接:https://www.nowcoder.com/questionTerminal/a174820de48147d489f64103af152709来源:牛客网n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案...原创 2019-02-14 21:31:28 · 315 阅读 · 0 评论 -
找出离所输入的小于1000000的整数最近的斐波那契数,输出距离并输出斐波那契数。
#include<iostream>using namespace std;//求斐波那契数int fb(int n){ if (n == 0) return 0; if (n == 1) return 1; else { return fb(n - 2) + fb(n - 1); }...原创 2019-02-14 21:11:22 · 1025 阅读 · 0 评论 -
冒泡、插入、选择、快速排序四种方法锦集
一、冒泡排序#include<iostream>using namespace std;void swap(int& a,int& b)//交换两个数的函数{ a = a - b; b = a + b; a = b - a;}void maopao(int* arr,int n)//冒泡排序函数{ int i ,j; for(i = 0...原创 2018-12-21 18:44:58 · 182 阅读 · 0 评论 -
求数组中都是成对出现的数中,只出现一次的数字——异或的方法
采用异或的方法,将相同的两个数异或为0,剩余结果为所求。#include<iostream>#include<vector>using namespace std;int main(){ int value = 0; vector<int> v; for (int i = 1; i <= 10; i++) { v.push_back...原创 2018-12-01 16:05:04 · 232 阅读 · 0 评论 -
判断出栈顺序——C++11
判断出栈顺序,符合返回1,不符合返回0;#include<iostream>#include<vector>#include<stack>using namespace std;int main(){ int CheckStack(vector<int> pushV, vector<int> popV); vector...原创 2018-12-01 10:07:55 · 578 阅读 · 0 评论 -
求n的阶乘和求n的阶乘和——两种方法
方法一:递归求阶乘+循环求阶乘和#include<iostream>using namespace std;int main(){ int fac(int n);//声明函数 int sum=0; for (int i = 1; i <= 4; i++) { sum += fac(i); } cout << sum << endl;...原创 2018-11-24 10:29:23 · 18159 阅读 · 0 评论 -
单链表逆至的两种方法
方法一:在逆至单链表函数内创建三个临时的PNode指针,p1用来固定单链表的头结点,p2用来固定单链表循环的第n-i个节点,pCur用来循环找第n-i-1个节点。第一步:p1指向*pHead;(头结点)第二步:循环遍历单链表,使p2指向尾节点,并且使 *pHead指向最后一个节点,size记录节点的个数,用来控制循环。第三步:利用pCur循环找到第size-i的节点,使p2指向pCur,依次...原创 2018-11-24 10:12:36 · 724 阅读 · 0 评论 -
CVTE笔试题 求连续0-n数据中 k(0-9)出现的次数
//题目要求://输入 一个0-9的数据k,输入一个整数12,求0-12 中有多少位数是 k (个十百位 等于k)//1、考虑特殊情况 当k 和 n都是零的时候,直接输出1.//2、正常情况下,设置外循环从1 遍历到 n,然后嵌套内循环while() 用i对10求余%得r// 对余数进行判断 k ?= r,相等则满足条件count++,//3、对i mod 10取整进行循环2步骤,直至i...原创 2019-09-06 00:29:30 · 283 阅读 · 0 评论