算法
文章平均质量分 79
志起计算机编程
博主是一名毕业于中山大学软件工程专业,从事软件行业多年的IT工作者,热爱技术与分享,擅长java和大数据技术。平时喜欢羽毛球、游戏、动漫、剧本杀等。
展开
-
【牛客刷题】java编程笔试题(更新)
思路:用hashmap保存每个字符串的出现次数,每次输入一个字符串,判断该字符串是否在hashmap中,没有就插入value为1key为该字符串的值,存在则更新value+1。这里的有效序列定义为S中的每个字符在L中都存在,并且顺序一致,例如“ace”是“abcde”的有效序列,“aec”不是“abcde”的有效序列,但是ae是最长的有效序列,e是最后一个有效字符。如果匹配失败一次,则母串下标+1,继续匹配,当子串或母串下标超出长度则停止,输入记录的最后有序字符下标。............原创 2022-08-28 13:37:29 · 3787 阅读 · 0 评论 -
牛客网题目----两个链表的第一个公共节点
链表常用面试题原创 2021-12-23 23:45:51 · 343 阅读 · 0 评论 -
LeetCode. 拿硬币
题目:桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。示例 1:输入:[4,2,1]输出:4解释:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,总共 4 次即可拿完。示例 2:输入:[2,3,10]输出:8限制:1 <= n <= 41 <= coins[i] <= 10思路:直接遍历优先拿两枚,最后剩下一枚原创 2020-11-30 22:26:05 · 251 阅读 · 0 评论 -
LeetCode.拥有最多糖果的孩子
题目:给你一个数组candies和一个整数extraCandies,其中candies[i]代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的extraCandies个糖果分配给孩子们之后,此孩子有 最多的糖果。注意,允许有多个孩子同时拥有 最多的糖果数目。示例 1:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,true]解释:孩子 1 有 2 个糖...原创 2020-11-28 09:46:31 · 133 阅读 · 0 评论 -
LeetCode.求解二叉树的深度
题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。提示:节点总数 <= 10000解题思路:解题思路有两种,一种是用递归求解,一种是用非递归求解。用递归,一颗二叉树的深度等于它的左子树和右子树的深度的最大值,根据此...原创 2020-11-08 19:36:01 · 183 阅读 · 0 评论 -
LeetCode.左旋转字符串
题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出:"cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出:"umghlrlose"限制:1 <= k < s.length <= 10000...原创 2020-11-04 23:00:22 · 223 阅读 · 0 评论 -
LeetCode.猜数字
题目:小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。示例 1:输入:guess = [1,2,3], answer = [1,2,3]输出:3解释:小A 每次都猜对了。示例 2:输入:guess = [2,2,3], answe..原创 2020-11-03 22:52:47 · 731 阅读 · 0 评论 -
LeetCode.返回倒数第 k 个节点
题目:实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。注意:本题相对原题稍作改动示例:输入: 1->2->3->4->5 和 k = 2输出: 4说明:给定的 k保证是有效的。解题思路:题目要求返回链表倒数第k个节点,可以采用两步遍历的方法,即用两个指针遍历该链表,其中第一个指针比第二个指针快k-1的节点,之后两步指针同时遍历链表,当第一个指针到达链表的尾部,此时第二个指针所指的节点就是倒数第k个节点。代码如下:publ.原创 2020-11-02 22:53:30 · 225 阅读 · 0 评论 -
LeetCode.黑白方格画
题目:小扣注意到秋日市集上有一个创作黑白方格画的摊位。摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。画板上有 n * n 的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为 0。小扣希望最终的成品上需要有 k 个黑色格子,请返回小扣共有多少种涂色方案。注意:两个方案中任意一个相同位置的格子颜色不同,就视为不同的方案。示例 1:输入:n = 2, k = 2输出:4解释:一共有四种不同的方案:第一种方案:涂第一列;第二种方案:涂原创 2020-11-01 15:35:00 · 1110 阅读 · 2 评论 -
Google Code Jam在线测试题目--Alien Language
ProblemAfter years of study, scientists at Google Labs have discovered an alien language transmitted from a faraway planet. The alien language is very unique in that every word consists of exactly L原创 2014-10-16 22:43:25 · 3255 阅读 · 0 评论 -
Google2015校招在线测试题1----扫雷最少点击次数
ProblemMinesweeper is a computer game that became popular in the 1980s, and is still included in some versions of the Microsoft Windows operating system. This problem has a similar idea, but it does原创 2014-10-16 11:30:34 · 1814 阅读 · 1 评论 -
hihocoder--数字三角形
问题描述小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他们来到了大洋彼岸的美国。美国人民的生活非常有意思,经常会有形形色色、奇奇怪怪的活动举办,这不,小Hi和小Ho刚刚下飞机,就赶上了当地的迷宫节活动。迷宫节里展览出来的迷宫都特别的有意思,但是小Ho却相中了一个其实并不怎么像迷宫的迷宫——因为这个迷宫的奖励非常丰富~于是小Ho找到了小Hi,让小Hi帮助他获取尽可能原创 2014-10-29 10:01:06 · 1011 阅读 · 0 评论 -
google校招在线测试题---2048
先附代码:(简单地说就是给出一个矩阵代表2048游戏的一个状态以及一个方向,输出往这个方向移动之后的矩阵)#include#include#includeusing namespace std;int main(){ int T; ifstream ifile("B-large-practice.in"); ofstream ofile("out1.txt"); int nu原创 2014-10-29 10:54:28 · 1695 阅读 · 0 评论 -
google在线测试练习题3
ProblemThe Latin alphabet contains 26 characters and telephones only have ten digits on the keypad. We would like to make it easier to write a message to your friend using a sequence of keypresses t原创 2014-10-12 11:23:02 · 1249 阅读 · 0 评论 -
20140920百度笔试题一道之二维矩阵查找
百度笔试题原创 2014-09-22 09:35:42 · 1941 阅读 · 5 评论 -
C++实现hash_set
头文件:#includeusing namespace std;templateclass hash_set{private: hash_type array[100000]; int hash_fun(hash_type original);public: hash_set();//构造函数 void insert(hash_type value);//插入一个元素 v原创 2014-10-07 21:10:35 · 2629 阅读 · 0 评论 -
csdn高校编程挑战Peter的X
题目详情Peter是个小男孩,他总是背不清26个英文字母。于是,刁钻的英语老师给他布置了一个非常奇怪的作业,老师给了他一个由26个英文字母构成的N*N 的矩阵(我们保证N一定是一个奇数),问他这个矩阵构成的图案是否是一个标准的“X”。一个标准的X的定义:1、对角线上所有元素都是同一个字母。2、所有非对角线上的元素也都是同一个字母,且字母与对角线上的字母不同。如果是则输出“YES”,原创 2014-09-30 14:20:00 · 702 阅读 · 0 评论 -
动态规划求一个数组的连续最大和
/**2014-09-30*求一个数组的连续最大和*用动态规划求最优解*/#includeusing namespace std;int main(){ const int size = 9; int array[] = {3,-1,4,6,-6,10,-1,-1,2}; int max[size]; max[0] = array[0]; int latter_sum原创 2014-09-30 10:08:19 · 625 阅读 · 0 评论 -
微软面试题1
微软、谷歌、百度等公司经典面试100题[第1-60题]写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)int atoi_z(string s){ int result = 0; for(int i = 0; i < s.length(); i++) result = result * 10 +原创 2014-09-30 10:18:45 · 530 阅读 · 0 评论 -
csdn高校编程挑战数字填充
题目详情peter喜欢玩数字游戏,但数独这样的游戏对他来说太简单了,于是他准备玩一个难的游戏。游戏规则是在一个N*N的表格里填数,规则:对于每个输入的N,从左上角开始,总是以对角线为起点,先横着填,再竖着填。这里给了一些样例,请在样例中找到规律并把这个N*N的表格打印出来吧。输入描述:多组测试数据(数据量在100组以内)。每组测试数据只有一行为一个整数N(1输出描述:对于每原创 2014-09-30 14:32:51 · 884 阅读 · 1 评论 -
微软面试题2
#include#include#includeusing namespace std;struct node{ int value; node* left; node* right; node(int v) { value = v; left = NULL; right = NULL; }};class bintree{private: node* r原创 2014-09-30 11:10:04 · 626 阅读 · 0 评论 -
csdn编程挑战-----书本转移
题目详情小强有 3 个箱子 A,B,C 用来装书,所有的书(一共n本)都按序号由小到大的顺序堆在 A上,现在他想把所有的书全都放到 C 里面去。每次他从 A 书架拿 a 本书(不够就全拿完)到 B,A 箱子翻转,然后从 B 拿 b 本书(不够就全拿完)到 C,B 箱子翻转。然后重复操作,直到所有书都到了 C,求最后的C 里面书的顺序,详细见样例。输入描述:输入由多组原创 2014-10-01 11:57:21 · 860 阅读 · 0 评论 -
输出模魔方矩阵
ConstraintsTime Limit: 1 secs, Memory Limit: 32 MBDescriptionIf you have good observations skills, you may found that building a Magic Square is simple. A Magic Square has only an odd原创 2014-09-28 14:48:29 · 869 阅读 · 0 评论 -
google在线测试练习题1
ProblemYou receive a credit C at a local store and would like to buy two items. You first walk through the store and create a list L of all available items. From this list you would like to buy tw原创 2014-10-12 11:17:44 · 1102 阅读 · 0 评论 -
google在线测试练习题2
ProblemGiven a list of space separated words, reverse the order of the words. Each line of text contains L letters and W words. A line will only consist of letters and space characters. There will原创 2014-10-12 11:23:47 · 1308 阅读 · 1 评论 -
写一下快速排序和堆排序,两个简单又神奇的算法
快速排序void quick_sort(int array[], int begin, int end){ if(end > begin) { int pivot = begin; int last_small = begin; int i = end; while(last_small != i) { if(array[i] <= array[pivot])原创 2014-09-18 17:45:13 · 1199 阅读 · 0 评论