Leetcode
刷题分享
狂奔的乌龟
1、博客介绍:专注分享ARM Trustzone/TEE/Linux/嵌入式等领域知识,大部分是个人学习笔记,关注我,一起学习!希望在这里能和大家一起进步,星光不负赶路人,加油!
2、个人介绍:ARM/TEE/Linux等领域忠实爱好者,个人长期专注于硬件安全、系统安全、嵌入式领域安全开发工作。
3、个人语录:积累是一个漫长的过程,未来很长,一起努力,只要路是对的,就不怕路远。
4、招聘广告:目前在国内大厂上班,长期招聘高级别&有经验的硬件安全、系统安全、嵌入式底层软件架构师&SE&MDE,寻求志同道合有志之士,有意向可私信我。
展开
-
OJ 系列之【中级】双链表基本操作
#include <stdlib.h>#define null 0#define MAXSIZE 50struct strlnode { int data; struct strlnode *plast; struct strlnode *pnext;};void create(struct strlnode **p, int x) /*创建双链表(表头节点)*/{原创 2016-02-22 10:38:10 · 930 阅读 · 1 评论 -
OJ 系列之简单错误记录(转)
摘要题目 描述: 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 处理: 1、 记录最多8条错误记录,循环记录,对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加; 2、 超过16个字符的文件名称,只记录文件的最后有效16个...题目描述:开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。处理:转载 2016-02-21 13:04:22 · 899 阅读 · 0 评论 -
OJ 系列之重复的电话号码(C_C++)
解题思路:首先建立题目要求的映射关系,其次将输入的字符串进行提取,转换成电话号码,利用map容器的有序性质进行存储电话号码,电话号码自动有序,然后按照题目要求进行输出即可。#include <stdlib.h>#include "PhoneBookProcess.h"/*功能: 检查是否有两个或多个公司拥有相同的电话号码,并统计输出输入参数: inFileName - 包含个性电话号码个数与原创 2016-02-21 10:34:26 · 2102 阅读 · 0 评论 -
OJ 之常规练习题(三)
1、识别有效的IP地址和掩码并进行分类统计2、Home+Work3、字符转换Univesity4、渊子赛马原创 2016-01-25 20:05:47 · 2328 阅读 · 1 评论 -
OJ 系列之整数排序
1、问题描述实现输入一组大于等于0的整数, 根据从小到大的顺序排序后输出,排序后有连续数时, 只输出连续数中最小和最大的两个数。 一组大于等于0的整数,不考虑非法输入,各个整数之间以逗号(“,”)分隔, 输入字符串的总长度小于等于100个字节。排序后的值,各个整数之间以空格分隔。2、解题思路1、首先从输入字符串inputStr按规律取出数字,然后存储到一个数组中(大小为50,初始值全部为原创 2016-01-25 19:17:27 · 1728 阅读 · 0 评论 -
OJ 系列之常规练习题(二)
1、坐标移动2、周期串问题3、矩阵相乘24、最大公约数5、整数相除6、字符串加解密7、水仙花8、阿姆斯特朗数9、大数相乘10、整数分隔原创 2016-01-22 21:22:24 · 1148 阅读 · 0 评论 -
OJ 系列之字节流解析
1、问题描述根据数值占用BIT数,按顺序从输入字节流中解析出对应数值,解析顺序按输入数组astElement索引升序。/*输入:字节数组长度uiIutputLen为2;字节数组aInputByte[2]为{0x62, 0x80},对应二进制为“01100010 1 000 0000”;解析数值个数uiElementNum为2;数值[0]的值占4个bit,即astElement[0].uiEleme原创 2016-01-22 15:49:02 · 6810 阅读 · 0 评论 -
OJ 系列之24点游戏算法
1、问题描述2、解题思路没找到好的办法,采用穷举法。所谓穷举法就是列出4个数字加减乘除的各种可能性。我们可以将表达式分成以下几种:首先我们将4个数设为a,b,c,d,,将其排序列出四个数的所有排序序列组合(共有A44=24种组合)。再进行符号的排列表达式,其中算术符号有加、减、乘、除。其中有效的表达式有:首先列出所有有效的表达式,其中a,b,c,d的范围是1到10。下面我介绍下穷举法的主要实现,我们知道要实现24点的原创 2016-01-21 17:11:01 · 2604 阅读 · 0 评论 -
OJ 系列之常规练习题(一)
1、求M的n次方最后三位【问题描述】 2、向升序单向链表中插入一个节点3、删除链表中的重复节点、剩余节点逆序输出4、二维数组的列排序5、取给定正整数的指定bit位开始的指定长度的数据6、兔子产子7、报文转换8、计算二进制数的0的个数9、简单密码破解10、密码验证合格程序原创 2016-01-20 09:50:56 · 1547 阅读 · 0 评论 -
OJ 系列之IP地址判断有效性
1、问题描述判断输入的字符串是不是一个有效的IP地址 详细描述: 请实现如下接口 bool isIPAddressValid(constchar* pszIPAddr) 输入:pszIPAddr 字符串 输出:true 有效的IP地址,false,无效的IP地址 约束 输入IP为XXX.XXX.XXX.XXX格式 字符串两端含有空格认为是合法IP 字符串中间含有空格认为是原创 2016-01-17 14:13:25 · 1471 阅读 · 0 评论 -
OJ 系列之最大递减数
1、问题描述给出一个非负整数,找到这个非负整数中包含的最大递减数。一个数字的递减数是指相邻的数位从大到小排列的数字。 如: 95345323,递减数有:953,95,53,53,532,32, 那么最大的递减数为953。 如果输入的数字为负数,返回-1。2、解题思路1、首先将非负整数每位数字压入vector数组中,其顺序和原数字从左到右一致;2、找出递减数(从大到小排列);3、从所有的递减原创 2016-01-16 21:44:45 · 2149 阅读 · 0 评论 -
OJ 系列之整型字符串排序
1、问题描述给定字符串内有很多正整数,要求对这些正整数进行排序,然后返回排序后指定位置的正整数 排序要求:按照每个正整数的后三位数字组成的整数进行从小到大排序 1)如果不足三位,则按照实际位数组成的整数进行比较 2)如果相等,则按照输入字符串中的原始顺序排序 说明(以下内容考生无须检查,调用者保证): 1) 字符串以’\0’结尾,仅包含数字、空格 2) 字符串内正整数之间以单个空格分原创 2016-01-16 20:37:47 · 2745 阅读 · 0 评论 -
OJ 系列之删除字符串中出现次数最少的字符
删除字符串中出现次数最少的字符描述:实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。题目类别:字符串难度:中级分数: 运行时间限制:10 Sec内存限制:12原创 2016-01-15 16:41:17 · 1448 阅读 · 0 评论 -
OJ 系列之字符串分割
问题描述连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组,长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。例如:输入:abc 12345789输出:abc00000 12345678 90000000接口函数设计如下:/***********************原创 2016-01-15 15:18:48 · 1723 阅读 · 0 评论 -
OJ 系列之字符串基本操作
字符串操作C语言提供了较多的库函数,本题目要求代码中不能使用字符串操作相关的库函数,可以使用malloc。用例中可以使用中提供的库函数。实现接口,每个接口实现1个基本操作:unsignedintstrlenth(char*s):计算字符串的长度。voidstrcopy(char**target,char*source):字符串拷贝,从source拷贝到target中。intstrcompare(char*s,char*t):字符串比较,比较的原则:对两个字符串的每个字符从左到右逐个比原创 2016-01-15 14:09:52 · 1586 阅读 · 0 评论 -
OJ 系列之可怕的n的阶乘
1、问题描述计算阶乘n!是一件可怕的事情,因为当n并不是很大时,n!将是一个很大的值。例如13! = 6227020800,已经超过了我们常用的unsigned int类型的取值范围。请设计一个程序,使其可以计算100以内的数的阶乘,结果用字符串的形式输出 详细描述:接口说明原型: void CalcNN(int n, char *pOut) 输入参数: int n 需要计算的阶乘数 输出原创 2016-01-15 14:04:59 · 2134 阅读 · 2 评论 -
OJ 系列之从M个不同字符中任取N个字符的所有组合
题目如下: #include <string.h>#include <stdio.h>#include <stdlib.h>#define MAXLENGTH 10000//组合问题(从M个不同字符中任取N个字符的所有组合) void combine(char *source,char *result,int n){ if (1==n) { while (原创 2015-09-15 12:14:34 · 1689 阅读 · 0 评论 -
OJ 系列之求两个字符串最大的公共字串的长度
求两个字符串最大的公共字串的长度 1、暴力解法#include <stdio.h>#include <string.h>#include <stdlib.h>/*大写转化成小写*/void large_to_little(char* strSrc){ if(!strSrc) return; while ( *strSrc != '\0') {原创 2015-09-10 17:13:49 · 1263 阅读 · 0 评论 -
数据结构学习之循环队列(顺序存储)
【摘要】队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。 这样有个缺陷,空间利用率不高,所以我们直接学习循环队列(基于连续内存的)。 (1)设计队列数据结构typedef struct _QUEUE_NODE{ int* pData; int length;//队列长度 int head ;//队头指针原创 2015-06-19 11:07:12 · 1398 阅读 · 2 评论 -
OJ 系列之字符串转换为整数
问题五:字符串转换为整数题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345。分析:此题看起来,比较简单,每扫描到一个字符,我们把在之前得到的数字乘以10再加上当前字符表示的数字。这个思路用循环不难实现。然其背后却隐藏着不少陷阱,正如zhedahht 所说,有以下几点需要你注意: 1、由于整数可能不仅仅之含有数字,还有可能以'+'或者'-'开头,表示整数的正负。如果第一个字符是'+'号,则不需要做任何操作;如果第一个字符是'-'号,则表明这个整数是原创 2015-03-28 16:20:48 · 934 阅读 · 0 评论 -
OJ 系列之 ASCII 降序排列
描述: 对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列运行时间限制: 无限制内存限制: 无限制输入: 长度为7个字符的字符串输出: 中间5个字符经过按ASCII降序排列的7个字符的字符串样例输入: CEAedca样例输出: CedcEAa答案提示:原创 2015-03-27 21:30:32 · 1288 阅读 · 0 评论 -
OJ 系列之奇偶数入座
描述: 将输入的一串10个整数进行从小到大排序,但是要求偶数放在偶数位置上,奇数放在奇数位置上。缺失的位置由0补齐,输入中不会有0。运行时间限制: 无限制内存限制: 128 MByte输入: 输入10组随机整数输出: 按照规则排序后输出样例输入: 53 8 21 43 3 7 51 62 13 68样例输出: 3 8 7 62 13 68 21 0 43 0 51 0 53原创 2015-03-27 21:22:32 · 589 阅读 · 0 评论 -
OJ 系列之查找与排序
/*输入一行数字:123 423 5645 875 186523 在输入第二行:23 将第一行中含有第二行中“23”的数输出并排序 结果即:123 423 186523 *//** Function: FindAndSort* Usage: void FindAndSort(pInput,len,num)* -----------------------------------------------------*/原创 2015-03-27 18:22:07 · 594 阅读 · 0 评论 -
OJ 系列之两个任意长度的数组里面元素相等个数
第一题:数组比较:• 问题描述: 比较两个数组,如果2个数组长度不等,则只比较较短长度数组个数元素。请编程实现上述比较,并返回比较中发现的不相等元素的个数比如:数组{1,3,5}和数组{77,21,1,3,5}按题述要求比较,不相等元素个数为0数组{1,3,5}和数组{77,21,1,3,5,7}按题述要求比较,不相等元素个数为3• 要求实现函数: void array_compare(int len1, int array1[], int len2, int array2[])【输入原创 2015-03-27 16:37:24 · 954 阅读 · 0 评论 -
OJ 系列之100以内正整数的加、减运算式
通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。补充说明:1、操作数为正整数,不需要考虑计算结果溢出的情况。2、若输入算式格式错误,输出结果为“0”。要求实现函数: void arithmetic(const char *pInputStr, long lInputLen);原创 2015-03-27 15:52:43 · 1058 阅读 · 0 评论 -
OJ 系列之字符串过滤与压缩
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"x原创 2015-03-27 15:01:27 · 738 阅读 · 0 评论 -
OJ 系列之去重复字符串并排序
去除重复字符并排序 运行时间限制:无限制 内容限制: 无限制 输入: 字符串,仅由大小写的英文字母组成输出: 去除重复字符并排序的字符串 样例输入: aabcdefff 样例输出: abcdef *原创 2015-03-27 11:15:14 · 2094 阅读 · 0 评论 -
OJ 系列之分解字符串
第一题(60分) 按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”(两个字符串是不是一起输入一个又接着输另外一个,这个地方有点小困惑?)#include "stdafx.h"#include "s原创 2015-03-27 10:14:56 · 1308 阅读 · 0 评论 -
[LeetCode-111] Minimum Depth of Binary Tree (二叉树最小深度)
Given a binary tree, find its Minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.本题就是求解二叉树的深度: 递归解法: (1)如果二叉树为空原创 2016-01-12 20:56:57 · 471 阅读 · 0 评论 -
[LeetCode-119] Pascal's Triangle II(帕斯卡三角形第K行数据)
Given an index k, return the kth row of the Pascal's triangle.For example, given k = 3,Return [1,3,3,1].Note:Could you optimize your algorithm to use only O(k) extra space?主要找到第K行数据的规律原创 2016-01-10 21:30:55 · 1239 阅读 · 0 评论 -
[LeetCode-118] Pascal's Triangle(帕斯卡三角形)
Given numRows, generate the first numRows of Pascal's triangle.For example, given numRows = 5,Return[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]Subscribe to see原创 2016-01-10 21:05:53 · 1598 阅读 · 0 评论 -
[LeetCode-28] Implement strStr(KMP 字符串匹配)
1、KMP算法的思想由D.E.Knuth、J.H.Morris和V.R.Pratt共同提出了一个改进算法,消除了Brute-Force算法中串s指针的回溯,完成串的模式匹配。时间复杂度为O(s.curlen+t.curlen),这就是Knuth-Morris-Pratt算法,简称KMP 算法。2、经典的next求解方法《大话数据结构》 P141页原创 2015-11-20 17:59:41 · 1382 阅读 · 0 评论 -
[LeetCode-205] Isomorphic Strings(同构字符串)
Given two strings s and t, determine if they are isomorphic.Two strings are isomorphic if the characters in s can be replaced to get t.All occurrences of a character must be replaced with anot原创 2015-11-16 22:32:50 · 541 阅读 · 0 评论 -
[LeetCode-66] Plus One
Given a non-negative number represented as an array of digits, plus one to the number.The digits are stored such that the most significant digit is at the head of the list.【分析】:题意:一个整数按位存储于一个i原创 2015-10-25 11:02:38 · 410 阅读 · 0 评论 -
[LeetCode-204] Count Primes(0~n 有多少个质数—4种方法求解)
埃拉托色尼筛选法(1)先把1删除(现今数学界1既不是质数也不是合数)(2)读取队列中当前最小的数2,然后把2的倍数删去(3)读取队列中当前最小的数3,然后把3的倍数删去(4)读取队列中当前最小的数5,然后把5的倍数删去(5)如上所述直到需求的范围内所有的数均删除或读取原创 2015-10-23 15:18:31 · 2579 阅读 · 0 评论 -
[LeetCode-38] Count and Say
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is read off as原创 2015-10-23 09:57:08 · 514 阅读 · 0 评论 -
[LeetCode-20] Valid Parentheses(用栈解决配对问题)
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.The brackets must close in the correct order, "()" and "()[]{}" are all va原创 2015-10-22 11:25:08 · 620 阅读 · 0 评论 -
[LeetCode-225] Implement Stack using Queues(两个队列实现栈)
Implement the following operations of a stack using queues.push(x) -- Push element x onto stack.pop() -- Removes the element on top of the stack.top() -- Get the top element.empty() -- Return whet原创 2015-10-21 18:07:39 · 868 阅读 · 0 评论 -
[LeetCode-232] Implement Queue using Stacks(两个栈实现一个队列)
Implement the following operations of a queue using stacks.push(x) -- Push element x to the back of queue.pop() -- Removes the element from in front of queue.peek() -- Get the front element.empty(原创 2015-10-21 14:23:34 · 784 阅读 · 0 评论 -
[LeetCode-155] Min Stack(设计一个 min 函数栈)
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) -- Push element x onto stack.pop() -- Removes the element on top of the stack.top() -- Get原创 2015-10-19 10:06:26 · 618 阅读 · 0 评论