C++面试题算法】的更多相关文章

试题 算法训练 Yaroslav and Algorithm 资源限制 时间限制:100ms 内存限制:128.0MB 问题描述 (这道题的数据和SPJ已完工,尽情来虐吧!) Yaroslav喜欢算法.我们将描述一个他最喜欢的算法. 1.这个算法接受一个字符串作为输入.我们设这个输入字符串为a. 2.这个算法由一些命令组成.i号命令的形式为"s[i]>>w[i]"或"s[i]<>w[i]",其中s[i]和w[i]是长度不超过7的字符串(可以为…
请点赞,你的点赞对我意义重大,满足下我的虚荣心. Hi,我是小彭.本文已收录到 GitHub · Android-NoteBook 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] 跟我一起成长. 前言 HashMap 是我们熟悉的散列表实现,也是 "面试八股文" 的标准题库之一.今天,我给出一份 HashMap 高频面试题口述简答答案,希望对你刷题有帮助.如果能帮上忙请务必点赞加关注,这对我非常重要. 这篇文章是数据结构与算法系列文章第 2 篇,…
有100格台阶,可以跨1步可以跨2步,那么一个有多少种走法: 今天电话面试.遇到一道算法问题,然后瞬间一脸懵逼: 然后机智的我,自作聪明的想到如果一个人每次都走1步,那么最多步,每次走2步最少步:然后明显跑题了...还好对方及时把我打断了...不然我估计要对着这玩意一直死脑经...一路走到黑.. 然后回到家了.拿着偶的mac,然后静静的思考,终于写出来了 var Stairs = new step(); function step(){ this.n1=1; this.n2=2; this.to…
#include <iostream> #include <string> using namespace std ; /* 题目:给一个字符串.例如 "ababc"要求返回"ab". 因为"ab"连续重复出现且最长. 用C/C++语言写一函数完成该算法,给出复杂度 这道题的最终目的是找到最长的连续字符串 */ struct SubStringInfo {  int maxSubStrLength ;//最长字符串的长度…
前言:周末闲来无事,在七月在线上看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家.什么字符串在算法中有多重要之类的大路边上的客套话就不多说了,直接上笔记吧. 一.字符串 java:String内置类型,不可更改.(如需更改可考虑:StringBuffer, StringBuilder,char[]等) 二.归类 字符串涉及到的相关题型通常会是以下几个方面: 概念理解:字典序 简单操作:插入删除字符.旋转 规则判断(罗马数字转换 是否是…
1.堆和栈在内存中的区别是什么? 概念: 栈(stack)是为执行线程留出的内存空间.当函数被调用的时候,栈顶为局部变量和一些 bookkeeping 数据预留块.当函数执行完毕,块就没有用了,可能在下次的函数调用的时候再被使用.栈通常用后进先出的方式预留空间:因此最近的保留块通常最先被释放.这么做可以使跟踪堆栈变的简单:从栈中释放块只不过是指针的偏移而已. 堆(heap)是为动态分配预留的内存空间.和栈不一样,从堆上分配和重新分配块没有固定模式:你可以在任何时候分配和释放它.这样使得跟踪哪部分…
前言:周末闲来无事,看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家.什么字符串在算法中有多重要之类的大路边上的客套话就不多说了,直接上笔记吧. 一.字符串 java:String内置类型,不可更改.(如需更改可考虑:StringBuffer, StringBuilder,char[]等) 二.归类 字符串涉及到的相关题型通常会是以下几个方面: 概念理解:字典序 简单操作:插入删除字符.旋转 规则判断(罗马数字转换 是否是合法的整数.…
一.字符串遍历类 1.获取符合条件的字符 思路:一般使用正则表达式会比遍历字符串简单.a=str.match(reg),a即为所得. 例子:a.判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母.数字.下划线,总长度为5-20 b.截取字符串abcdefg的efg 请牢记这些正则表达式的规则,/g(全局)/i(忽略大小写)/m(多行匹配)   ^开始位置匹配 $结束位置匹配 {m,n}个数匹配 2.获取出现最多次数的字符(单词)及它们出现的次数 思路:a.分割或遍历字符串 b.辅助js…
问题描述 炫炫回了内蒙,肯定要吃羊肉啦,所有他家要宰羊吃. 炫炫家有N只羊,羊圈排成一排,标号1~N.炫炫每天吃掉一只羊(这食量!其实是放生啦),吃掉的羊的邻居会以为它被放生了,然后又会告诉他们的邻居,这样一直传播下去,除非某个邻居已经被“放生”了.每一天,所有知道某羊被“放生”了这个消息的羊都会很不满,如果不给他们巧克力的话,他们就会很造反,炫炫已经知道他要吃掉哪些羊,他可以任意安排吃的顺序,然后使巧克力的用量最小,请求出这个最小值. 输入格式 本题有多组数据,第一行为数据组数T. 对于每组数…
Java 代码 ```` import java.util.Scanner; public class Main { private static long num = 0; private static long mod = 4294967296L; private static char[] arr = new char[100000 + 7]; private static long[] dp = new long[100000 + 7]; public static void main(…
资源限制 时间限制:1.0s   内存限制:256.0MB 问题描述 给定L,R.统计[L,R]区间内的所有数在二进制下包含的"1"的个数之和. 如5的二进制为101,包含2个"1". 输入格式 第一行包含2个数L,R 输出格式 一个数S,表示[L,R]区间内的所有数在二进制下包含的"1"的个数之和. 样例输入 2 3 样例输出 3 数据规模和约定 L<=R<=100000; 1 import java.util.Scanner; 2…
资源限制 时间限制:1.0s   内存限制:256.0MB 问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少. 输入格式 输入一个正整数N. 输出格式 输出一个整数,表示你找到的最小公倍数. 样例输入 9 样例输出 504 数据规模与约定 1 <= N <= 106. 1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String args[]) { 5…
资源限制 时间限制:1.0s   内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数. 接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个.序列元素从1开始标号. 输出格式 总共输出m行,每行一个数,表示询问的答案. 样例输入 51 2 3 4 521 5 22 3 2 样…
面试题12:打印1到最大的n位数 剑指offer题目12,题目如下 输入数字n,按顺序打印出1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的三位数999 方法一 和面试题11<数值的整数次方>类似,乍看觉得都是简单题目,找出最大的n位数,开始逐个打印,写出代码 public static void method_1(int n ) { int num = 1; int i = 1; while(i <= n) { num *= 10 i++; } for(i = 1;i…
华为算法面试题 """ 算法题: 提供一个序列,完成对这个序列的分割.要求分割后的两个序列彼此差值最小 实现函数,返回两个序列 """ def func(i): i.sort() if not i: return (([], [])) max_num = i[-1] max_two_num = i[-2] max_list, min_list = func(i[:-2]) max_list.append(max_two_num) min_list…
基础知识(开胃菜) Python 1.类继承 有如下的一段代码: class A(object): def show(self): print 'base show' class B(A): def show(self): print 'derived show' obj = B() obj.show() 如何调用类A的show方法了. 方法如下: obj.__class__ = Aobj.show() class 方法指向了类对象,只用给他赋值类型A,然后调用方法show,但是用完了记得修改回…
初级面试题   Java面试题-基础篇一 Java面试题-基础篇二 Java面试题-集合框架篇三 Java面试题-基础篇四 Java面试题-基础篇五 Java面试题-javaweb篇六 Java面试题-javaweb篇七 Java面试题-框架篇八 Java面试题-框架篇九 Java面试题-持久层十 Java面试题-数据库篇十一 Java面试题-数据库篇十二 Java面试题-多线程篇十三 Java面试题-泛型篇十四 Java面试题-web篇十五 Java面试题-并发篇十六 Java面试题-算法篇十…
总目录链接 [学习总结]尚硅谷2019java数据结构和算法 github:javaDSA 目录 几个经典算法面试题 算法和数据结构的重要性 几个经典算法面试题 字符串匹配 暴力法:慢 kmp算法:更符合 汉诺塔 分治算法 八皇后问题 回溯 马踏棋盘问题 DFS+贪心优化 算法和数据结构的重要性 END…
试题 算法训练 连通分块 资源限制 时间限制:200ms 内存限制:8.0MB 问题描述 连通分块 输入格式 输入的第一行包含两个整数n, m n代表图中的点的个数,m代表边的个数 接下来m行,每行2个正整数,表示图中连通的两点. 输出格式 输出1行,与1连通的点的集合,并按升序排列输出. 样例输入 6 3 1 2 2 3 3 4 样例输出 1 2 3 4 数据规模和约定 n<=10000,m<=100000 package 蓝桥杯官网; import java.util.Scanner; p…
试题 算法训练 最大质因数 问题描述 给出N个数字,求出有最大的最大质因数的那个数 输入格式 第一行:一个整数N. 接下来的N行,每行一个整数A_i,表示给出的那N个数字. 输出格式 第一行:一个整数,拥有最大的最大质因数的那个数. 样例输入 4 36 38 40 42 样例输出 38 数据规模和约定 60%的数据满足:N<=100 100%的数据满足:N<=2500,A_i<=20000 PS: 可能逻辑比较复杂,或者是我想到复杂,暴力大法(●ˇ∀ˇ●) import java.uti…
试题 算法训练 与1连通的点的个数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 没有问题描述. 输入格式 输入的第一行包含两个整数n, m n代表图中的点的个数,m代表边的个数 接下来m行,每行2个正整数,表示图中连通的两点. 输出格式 输出1个数,与1连通的点的个数. 样例输入 6 3 1 2 2 3 3 4 样例输出 4 数据规模和约定 n<=10000,m<=100000. import java.util.Scanner; public class Main {…
试题 算法训练 非递归 问题描述 当x>1时,Hermite多项式的定义见第二版教材125页.用户输入x和n,试编写"非递归"函数,输出对应的Hermite多项式的值.其中x为float型,n为int型. 输入格式 x n 输出格式 对应多项式的值 样例输入 一个满足题目要求的输入范例. 例: 3.6 4 样例输出 与上面的样例输入对应的输出. 例: 2077.31 数据规模和约定 x>1 n为自然数 PS: 百度搜索那个Hermite多项式的原理 import java.…
试题 算法训练 步与血 问题描述 有n*n的方格,其中有m个障碍,第i个障碍会消耗你p[i]点血.初始你有C点血,你需要从(1,1)到(n,n),并保证血量大于0,求最小步数. 输入格式 第一行3个整数n,m,c,表示棋盘大小.障碍数量和你的血量 接下来m行,每行描述一个障碍.包含三个整数x y p,分别表示障碍在第x行第y列,消耗血量为p. 输出格式 如果可以到输出步数,如果不可以,输出"No". 样例输入 10 10 10 2 8 35 1 10 25 9 9 63 5 6 46…
试题 算法训练 报数 问题描述 现有n个同学站成一圈,顺时针编号1至n.从1号同学开始顺时针1/2报数,报到1的同学留在原地,报到2的同学退出圆圈,直到只剩一名同学为止.问最后剩下的同学编号. 输入格式 仅一行,一个正整数n. 输出格式 仅一行,一个正整数. 样例输入 400 样例输出 289 数据规模和约定 n<=2000000 PS: 这个题你把他反过来想,他问的就是最后一个人,也就是最后一个被淘汰的人 你不如,从第一个人开始找,然后涨到那么多人,他的位置就是最后一个人的位置 import…
试题 算法训练 -2进制 问题描述 给出1个十进制整数N,计算出它的-2进制表示. 输入格式 第一行:一个整数N,表示要转换的十进制数. 输出格式 第一行:N的-2进制表示. 样例输入 -13 样例输出 110111 数据规模和约定 100%的数据满足:|n|<=2000000000. 提示 负二进制: 有这样一个数100110,它是-2进制的数,将它转换成10进制数的方法是1*(-2)5 + 0*(-2)4 + 0*(-2)3 + 1*(-2)2 + 1*(-2)1 + 0*(-2)0 等于-…
试题 算法提高 进攻策略加强 问题描述 植物大战僵尸这款游戏中,还有一个特别的玩儿法:玩家操纵僵尸进攻植物. 首先,僵尸有m种(每种僵尸都是无限多的),玩家可以选择合适的僵尸来进攻.使用第i种僵尸需要花费Wi资源,可以得到Pi的攻击效果.在这里,我们认为多个僵尸总的攻击效果就是他们每个攻击效果的代数和. 地图共有n行,对于第i行,最左端有若干植物,这些植物需要至少Qi的攻击才能被全部消灭.若一行上的植物全部被消灭,我们称这一行被攻破. 由于资源紧张,你只有总量为K的资源,不一定能够攻破所有行.但…
试题 算法提高 天天向上 问题描述 A同学的学习成绩十分不稳定,于是老师对他说:"只要你连续4天成绩有进步,那我就奖励给你一朵小红花."可是这对于A同学太困难了.于是,老师对他放宽了要求:"只要你有4天成绩是递增的,我就奖励你一朵小红花."即只要对于第i.j.k.l四天,满足i<j<k<l并且对于成绩wi<wj<wk<wl,那么就可以得到一朵小红花的奖励.现让你求出,A同学可以得到多少朵小红花. 输入格式 第一行一个整数n,表示总…
试题 算法提高 欧拉函数 问题描述 老师出了一道难题,小酱不会做,请你编个程序帮帮他,奖金一瓶酱油: 从1-n中有多少个数与n互质? |||||╭══╮ ┌═════┐ ╭╯让路║═║酱油专用车║ ╰⊙═⊙╯ └══⊙═⊙═(坑爹的题面格式化,害得我用'|'来代替空格,复制到记事本上看就变成正版的了) 输入格式 输入共一行,表示一个整数n. 输出格式 输出共一行,表示从1-n中与n互质的数的个数. 样例输入 30 样例输出 8 数据规模和约定 60%的数据≤10^6 100%的数据≤2*10^9…
试题 算法提高 计算超阶乘 问题描述 计算1*(1+k)(1+2k)(1+3k)-(1+n*k-k)的末尾有多少个0,最后一位非0位是多少. 输入格式 输入的第一行包含两个整数n, k. 输出格式 输出两行,每行一个整数,分别表示末尾0的个数和最后一个非0位. 样例输入 15 2 样例输出 0 5 数据规模和约定 1<=k<=10,1<=n<=1000000. PS: 在计算的过程中就把末尾的0删掉 import java.util.Scanner; public class Ma…
试题 算法提高 高精度减法 问题描述 高精度减法 输入格式 两行,表示两个非负整数a.b,且有a > b. 输出格式 一行,表示a与b的差 样例输入 1234567890987654321 9999 样例输出 1234567890987644322 import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s…