- 博客(54)
- 收藏
- 关注
原创 从上到下打印二叉树(二叉树层序遍历)
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层次遍历结果:[[3],[9,20],[15,7]]/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right
2020-07-24 19:23:53
172
原创 AOE打怪
aoe:一个一维地图,上面有一些怪物,主角现在要打怪,每触发一次技能就会对范围内的怪物造成1点伤害,请问最少需要触发多少次技能才能消灭完怪物;注:x为主角位置,伤害范围是 x-y 到 x+y ;输入:第一行输入n表示怪物数量,y表示主角攻击范围;接下来输入n组数据,每组包含两个值pos和ph,分别表示怪物的位置和血量;输出:最少触发技能次数eg:输入:3 33 41 1010 5输出:15#include<iostream>#include<map>us
2020-07-24 18:14:34
332
原创 笔试题中输入字符串的分割
笔试题中往往会给一个数组,但是数组的输入方式确实如下:1,4,12,3,9,6那么只能用string来获取输入的数组,在用时必须要进行分割,取出自己需要的数组元素,解决方法如下:#include <iostream>#include <string>#include <vector>#include <sstream>using namespace std;int main(){ string str; int arr[100]; /
2020-07-24 17:23:54
297
原创 重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * struct TreeNode { * int val; * Tre...
2020-02-10 15:58:09
142
原创 字符串转换整数
请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽...
2020-02-06 20:05:25
147
原创 压缩字符串
给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。输入:[“a”,“a”,“b”,“b”,“c”,“c”,“c”]输出:返回6,输入数组的前6个字符应该是:[“a”,“2”,“b”,“2”,“c”,“3”]输入:[“a”,“b”,“b”,“b”,...
2020-02-06 20:02:22
141
原创 逆波兰表达式求值
根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。*每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: [“2”, “1”, “+”, “3”, ""]输出: 9解释: ((2 + 1) * 3) = 9解题思路:遍历题中...
2020-02-06 19:49:36
124
原创 最短无序连续子数组
给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。解题思路:先创建一个数组tmp,将原数组拷贝过去,再对tmp进行排序。...
2020-02-06 19:43:31
146
原创 二叉树的右视图
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释:解题思路:层序遍历,用num记录每层的最后一个节点元素,当遍历到该元素时,直接将节点元素的val放入ans数组中代码如下:/** * Definition for a binary tree node....
2020-02-06 19:37:12
100
原创 子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]采用位运算方法,所给集合若有n个元素,则有 2^n 个子集0 ~ 2^n -1 的二进制刚好可以代表子集中放哪个元素;如三个元素...
2020-02-05 15:34:21
113
原创 二维vector的赋值和遍历
#include<iostream>#include<vector>using namespace std;int main(){ vector<vector<int>> ans; vector<int> tmp; tmp.push_back(1); tmp.push_back(2); tmp.push_back(3);...
2020-02-05 14:49:49
841
原创 栈和队列互相实现
#include<iostream>using namespace std;#include<stack>#include<queue>#if 1class stackQueue //两个栈实现一个队列{private: stack<int> m_stack1;public: stackQueue() //无参构造 {...
2019-10-21 17:35:16
128
原创 将字符串中的空格替换
//请实现一个函数,将一个字符串中的每个空格替换成“%20”//例如,当字符串为We Are Happy.//则经过替换之后的字符串为We%20Are%20Happy。#include<stdio.h>#include<stdlib.h>#include<string.h>char* replaceSpace(char *str, int leng...
2019-10-21 17:14:46
301
原创 找某一数字的最近Fibonacci数
//给你一个num,你想让其变为一个Fibonacci数//每一步你可以把当前数字X变为X-1或者X+1//现在给你一个数num求最少需要多少步//可以将其变为Fibonacci数。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main(){ int f_2 =...
2019-10-21 17:09:57
230
原创 最大子序列和
分治法:#include<iostream>using namespace std;#include<vector>//给一个数组,返回它的最大连续子序列的和//子向量的长度至少是1int FindGreatestSumOfSubArray(vector<int> arr, int left, int right){ int sum = 0;...
2019-09-23 21:42:36
125
原创 高精算法
高精算法+和*class HighAcc{ char m_data[NUMSIZE]; size_t m_size;public: HighAcc(string s) : m_size(s.size()) { string::reverse_iterator i; //逆向迭代器,i相当于指针 int j = 0; for (i = s.rbegin(); i != ...
2019-09-21 16:44:51
248
原创 字符串乘法(正计逆存)
#includeusing namespace std;#include//字符串乘法string stringMul(string num1, string num2){int m = num1.size();int n = num2.size();char mul = (char)calloc(‘0’, sizeof(char)*(m + n));for (int i = m...
2019-09-21 16:37:49
122
原创 ++和--的重载
#include<iostream>using namespace std;class Three{private: int m_a1; int m_a2; int m_a3;public: Three(int a1 = 0, int a2 = 0, int a3 = 0) //缺省构造函数 { m_a1 = a1; m_a2 = a2; m_a3 ...
2019-09-10 21:00:12
475
原创 日期计算器
三、设计一个日期类,包含以下功能:1、只能通过传入年月日初始化。2、可以加上一个数字n,返回一个该日期后推n天之后的日期。3、减天数n#include<iostream>using namespace std;#include<stdlib.h>class Date{private: int m_year; int m_month; int m_d...
2019-09-10 14:09:31
4450
原创 快速计算订单价格
某老板想要一个能快速计算订单价格的程序,请你帮他设计一个类:1、这个类里需要原价和数量,原价从一个数组中读出即可(自行定义数组),数量需要初始化。2、老板会不定期调整价格,调整的方式是通过调整一个价格系数,这个系数乘以原价即为最终价格,这个折扣会影响到所有产品。#include<iostream>using namespace std;class Price{priva...
2019-09-02 21:39:05
777
原创 排序算法
1.插入排序:工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。时间复杂度O(n)到O(n^2)void InsertSort(int* src, int n) //插入排序{ int ...
2019-08-23 14:51:45
118
原创 模拟实现
//模拟实现strcpy#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#define size 30int main1(){ char str1[size] = ""; char str2[size] = ""; scanf("%s %s", str1, str2);...
2019-08-23 14:40:07
155
原创 堆操作
头文件heap.h#ifndef _HEAP_H_#define _HEAP_H_typedef int HPDataType;typedef struct Heap{ HPDataType* data; int size; int capacity;}Heap;void adjustDown(Heap* hp, int n); //向下排序void HeapInit(...
2019-08-17 16:24:07
78
原创 先序遍历还原树(递归)
头文件 BTree.h#ifndef _BTREE_H_#define _BTREE_H_#include<stdio.h>#include<stdlib.h>typedef char BTDataType;typedef struct BinaryTreeNode{ BTDataType _data; struct BinaryTreeNode* l...
2019-08-17 16:20:43
228
原创 qsort排序
//使用qsort快速排序void qsort(void* base,int nelem,unsigned int width,int(pfCompare)(const void ,const void*))base为待排序的数组nelem为数组元素个数width为数组每个元素所占字节长度pfCompare为函数指针指向一个"比较函数"#include<stdio.h>#...
2019-06-03 18:03:00
179
原创 一系列string操作的模拟
//模拟实现strcat字符串拼接函数#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#define size 30int main(){ char str1[size] = ""; char str2[size] = "...
2019-06-03 17:31:07
100
原创 字符左旋
实现一个函数,可以左旋字符串中的k个字符。eg:ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>左旋函数void Left(char a[],int n,int ...
2019-05-13 20:13:03
101
原创 逆转字符串
有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。student a am ii ma a tnedutsi am a student程序代码如下:#include<stdio.h>#include<stdlib.h>/...
2019-04-21 00:31:10
192
原创 找数字中的“单身狗”
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)程序代码如下:#include<stdio.h>#include<stdlib.h>int compare(int arr[],int n){ int i = 0; int ret = 0; for (i = 0; i < n; ++i) { //异或...
2019-04-21 00:28:09
538
原创 位运算符应用之一
不使用(a+b)/2这种方式,求两个数的平均值。程序代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int aver1(int a, int b){ //位运算求平均值分两部分 //两数平均值 = 相与后的值 + 异或后再右移一位的值 return (a & ...
2019-04-21 00:25:14
162
原创 数制逆置,加转换
编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:255...
2019-04-21 00:22:26
131
原创 杨氏矩阵中找数字
杨氏矩阵有一个二维数组.。数组的每行从左到右是递增的,每列从上到下是递增的.。在这样的数组中查找一个数字是否存在。找到返回1,未找到返回0.程序如下:#include<stdio.h>#include<stdlib.h>int find(int arr[3][3],int n,int row,int col){ while (row <= 2 &a...
2019-04-21 00:17:08
145
原创 数组调整 奇数在前偶数在后
调整数组使奇数全部都位于偶数前面。输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分代码如下:#include<stdio.h>#include<stdlib.h>void order(int arr[],int n){ int i,j; int tmp; for (i = 0,...
2019-04-21 00:13:23
326
原创 简易扫雷
程序代码如下:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>#define MAX_ROW 9#define MAX_COL 9#define MINE_COUNT 10 //地雷个数//开始菜单界面okint Start(...
2019-04-09 19:31:18
151
原创 三子棋游戏
程序代码如下:#define _CRT_SECURE_NO_WARNINGS #include<stdio.h>#include<stdlib.h>#include<time.h>#define MAX_ROW 3#define MAX_COL 3//开始选择界面int Start(int choice){ printf("------...
2019-04-06 12:54:09
134
原创 函数应用
创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。要求:自己设计函数的参数,返回值。程序代码如下:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int _print(int a[], int n) ...
2019-04-03 13:34:02
127
原创 字符串转换
编写一个程序,可以一直接收键盘字符;如果是小写字符就输出对应的大写字符;如果接收的是大写字符,就输出对应的小写字符;如果是数字不输出;其余原样输出。程序代码如下:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<ctype.h> //该库...
2019-04-02 00:08:52
112
原创 实现一个函数,判断一个数是不是素数。
程序代码如下:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<math.h>int Judge(int num){int i;for (i = 2; i < sqrt(num); ++i){if (num % i == 0){pri...
2019-04-01 23:19:34
184
原创 实现一个函数判断year是不是润年
实现一个函数判断year是不是润年程序代码如下:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int judge(int n){if ((n % 4 == 0 && n % 100 != 0) || n % 400 == 0){printf(“是闰年!\n...
2019-04-01 22:42:41
207
原创 用函数交换两个变量的内容
用函数交换两个变量的内容函数形参即为实参的一份拷贝;形参内部怎么改变,实参都没有影响;故此时应用指针变量。程序代码如下:#include<stdio.h>#include<stdlib.h>int Swap(int* a, int* b){int tmp;tmp = *a;*a = *b;*b = tmp;return 0;}int main(...
2019-04-01 22:12:13
235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人