
刷题
weixin_40805072
战五渣
展开
-
剑指offer(day1)
一、写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。先看看十进制数的运算,比如6和7 不计进位得到3,计算进位得到10. 10+3 即为结果。两个数异或:相当于每一位相加,而不考虑进位; 两个数相与,并左移一位:相当于求得进位; 上述两步的结果相加6--->110 7---->111110^111为001 即1(110&111)<<1为121+12=13即为结果 public int ...原创 2020-05-10 21:46:43 · 188 阅读 · 0 评论 -
日常刷题(242异位词)
leetccode 242给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。输入: s = "anagram", t = "nagaram"输出: true输入: s = "rat", t = "car"输出: false如果考虑大小写的花,可以将两字符串都转为大写或写的;当两个字符串长度不一致必定不是异位词法一:暴力法先把两个字符串转为字符数组,然后将两个数组排序,比较两个数组是否相同import java.util.Arrays;publ...原创 2020-05-09 23:34:02 · 263 阅读 · 0 评论 -
坚持练习
编写函数strrindex(s,t),它将返回字符串t在s中最右边出现的位置。如果s中不包含t,则返回-1#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>int strrindex1(char s[],char t[]){ int i,...原创 2020-04-27 13:59:36 · 307 阅读 · 0 评论 -
练习(3)
一、重建二叉树输入某二叉树的谦虚比哪里和中序遍历的结果,请重建该而擦函数。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历{1,2,4,5,3,5,6,8}和中序序列{,4,7,2,1,5,3,8,6},重建该二叉树解:前序遍历的第一个值为根结点的值,使用这个值将中序遍历分成两部分,左部分为树的左子树中序遍历结果,右部分为树的右子树中序遍历的结果。每次在前序遍历中找根...原创 2020-03-12 13:35:05 · 126 阅读 · 0 评论 -
练习(2)
一、替换空格请实现一个函数,将一个字符串中的每个空格替换为“%20”。例如,当字符串为We Are Happy 。则经过替换之后的字符串为We%20Are%20Happy解:我能想到的就是字符串转为字符数组,遍历数组,每遇到空格就替换为20%。但有个问题是,20%是由三个字符组成的。所以每遍历到空格,需要在其尾部添加两个任意字符。参考大佬的思路,令p1指向字符串原来的末尾位置,...原创 2020-03-11 14:10:03 · 217 阅读 · 0 评论 -
疯狂练习
/**颓废多日,回来忏悔了*/一、二维数组的查找题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数本渣记得学c的时候总是二维数组的i,j预先弄好的。二维数组长这样,在许多语言中都有arr.length求得数组长度,比如java中arr....原创 2020-03-09 13:06:36 · 106 阅读 · 0 评论 -
(11-30)
1.关于散列表冲突的描述*冲突(碰撞)是不可避免的,与装填因子无关,因此需要设计处理冲突的方法。*散列表查找成功的平均查找长度与装填因子无关,与表长无关。*在开放定机制的情形下,不能随便删除散列表中的某个元素,否则会导致搜索路径被中断。因此通常在要删除的地方做标记,而不是直接删除。*在开址法中散列同一个地址而引起的“堆积问题”是由于(同义词之间或非同义词之间发生冲突)而引起的同...原创 2019-12-07 23:40:00 · 1103 阅读 · 0 评论 -
编程练习(11-8)
一、请编写一个方法,找出两个数字中最大的那个。条件是不得使用if-else等比较和判断运算符。给定两个inta和b,请返回较大的一个数。若两数相同则返回任意一个。测试样例:1,2 返回:2//首先想到的是用三元运算符import java.util.*;public class Max { public int getMax(int a, int b) { ...原创 2019-11-08 17:01:59 · 132 阅读 · 0 评论 -
List-练习(11/4)
1.设计递归算法,删除不带头结点的单链表L中所有值为x的结点//the first methodvoid delet_x(LinkList &L,x){ if(L=NULL) return NULL; while(L!=NULL){ if(L->next->data==x) L->next=L->next->...原创 2019-11-05 01:16:13 · 230 阅读 · 0 评论 -
单链表(练习)
1.设计算法,判断一个带头结点的单链表list是否非递减有序。自己思路:遍历单链表 ,每遇到一个结点判断,当前结点的值 是否小于 等于后继结点值,若为真则结束循环,该list为非递减序列;否则指针后移,继续判断,直到下一个结点为NULL,结束循环。简单写下:L=(list*)malloc(sizeof(list));list *p=L->next;if(p==NULL)r...原创 2019-09-17 01:12:54 · 2899 阅读 · 0 评论 -
输出第k个
一、找出数组中的倒数第k个元素思路:分别设置两个变量i,j初始化为0,i自增直到等于k,然后两个变量同时开始自增,直到i>arr.length此时j所指即为倒数第k个元素#include <stdio.h>void fun(int arr[],int index){ int i=0,j=0; while(i!=3) { ...原创 2019-09-12 00:54:52 · 217 阅读 · 0 评论 -
C(练习)
一、已有a,b两个链表,每个链表中的结点包括学号和成绩。要求把两个链表合并,并按学号升序排列#include <stdio.h>#include<malloc.h> //合并两个链表 #define LEN sizeof(struct student)struct student{ long num; //序号 int score; //分数 str...原创 2019-09-06 15:54:08 · 737 阅读 · 0 评论 -
练习(C,结构体)
一、有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课成绩,平均分数)分析:定义学生结构体,含有3个属性,需要完成输入输出,以及平均成绩、最高分的计算#include<stdio.h>#include<stdlib.h>#define N 10stru...原创 2019-09-04 00:29:24 · 381 阅读 · 0 评论 -
练习(8-29)
1.给定一棵树的先根遍历序列和后跟遍历序列,能否唯一确定一棵树?若能,请举例说明;若不能,请给出反例答:一棵树的先根遍历与其对应二叉树的先序遍历结果相同,树的后根遍历结果与其对应二叉树表示的中序遍历结果相同。由于二叉树表示的先序遍历和中序遍历棵唯一确定一棵二叉树。因此给定一棵树的先根遍历序列和后跟遍历序列,能唯一确定一棵树。2.将下面一个由3棵树组成的森林转换为二叉树https...原创 2019-08-29 21:51:03 · 2496 阅读 · 0 评论 -
练习(tree)
一、一棵高度为h的满m叉树有如下性质:根结点所在层次为第1层,第h层上的结点都是叶结点,其余各层上的每个结点都有m棵非空子树,若按层次自顶向下,同一层自左向右,顺序从1开始对全部结点进行编号。(1)各层的结点个数为多少答:第一层有m^=1个,第二层有m^1个结点,第三层有m^2个结点.....一般的,第i层有m^i个(2)编号为i的结点的双亲结点(若存在)的编号为多少答:在m叉树的...原创 2019-08-24 23:52:42 · 8807 阅读 · 0 评论 -
练习(8-27)
1.若希望循环队列中的元素都能得到利用,则需设置一个标志域tag,并以tag的值为0或1来区分队头指针front和队尾指针rear相同时的队列状态是“空”还是1来区分队头指针front和队尾指针rear相同时的队列状态是“空”还是满。 试编写与此结构相应的入队和出队的算法解:在循环队列中,增设tag的整型变量,进队时置为1,出队时置tag为0(因为只有入队操作才可能导致队满,也只有出队操作可能...原创 2019-08-27 23:02:29 · 597 阅读 · 0 评论 -
练习(8-22)
1.设数组A[0,...,n-1]的n个数组元素中有多个零元素,设计一个算法,将A中所有的非零元素依次移动到A数组的前端分析:遍历数组,每当发现非零元素,使其尽可能与靠左边的零元素进行交换。#include <stdio.h>#include<string.h>int move(int A[],int n){ int i=-1,j,temp; for(j=...原创 2019-08-22 23:16:55 · 407 阅读 · 0 评论 -
简单订票处理(java)
(注:本题来自软考初级真题)本代码实现两类交通工具(Flight 和 Train)的简单订票处理,类Vehicle、Flight、Train之间的关系入下图。首先可以看到Vehicle是Flight和Train的父类简单的订票就针对这两种交通工具,每次订票根据所选订票的交通工具和所需订票数2进行操作。订票操作book在余票满足条件的时,会将余票总数减去 所订票数。不足时,给出给出相应类型...原创 2019-03-08 16:44:54 · 1146 阅读 · 0 评论 -
基础数学的应用
1.25个互不相同的正整数之和为500,则其中至少有(3)个偶数分析:25个互不相同的正整数之和为500,我们可以从最小的奇数开始,有1+3+5+……+41+43=(1+43)*22=484,此时共有22个奇数,洗一个奇数时45,若果有23个,那么综合超过了500。所以奇数个数最多时22个,偶数个数最少是3个。(因为是求偶数至少有多少,所以从奇数开始推)设s=1+3+5±-----+(2n-1...原创 2019-03-09 22:39:34 · 653 阅读 · 0 评论 -
面向对象具体例题
本代码模拟一个简单的绘图工具的原理(说明,画不出图来),绘制不同的形状以及不同颜色的图形。部分接口、类及其关系如图所示package com.School.priv.Test; interface DrawCircle{ //绘制图形 public void drawCircle (int radius,int x,int y);} c...原创 2019-03-11 18:11:44 · 666 阅读 · 0 评论 -
模拟客户关系与股票代理(不具备任何实用性)
(声明:不具有实用性,我只是记录做题的思维与过程)一、客户关系处理以下代码实现一个简单客户关系中通过工厂对象来常见客户对象的功能。客户分为创建成功的客户和空客户。空客户对象是当不满足特定条件时创建或获取的对象。类之间的关系如图所示:这题主要就是让创建客户对象,然后通过调用getVustomer()函数判断客户名字是否在指定的数组中。package com.Schoo...原创 2019-03-12 17:17:37 · 361 阅读 · 0 评论 -
求平面中最近的点对
(注:这只是一道习题,不具有实用性)一、题目要求:找出平面坐标系中最近的点对(若存在多对,则输出其中的一对即可)。程序运行时,先输入点的个数和一组互异的点的坐标,通过计算每对点之间的距离,从而确定出距离最近的点对。 分析:数轴上两点之间的距离等于对应两数差的绝对值,而平面坐标系中两点间的距离等于相应两点的横坐标和纵坐标差的平方和的绝对值。假设平面坐标系中的两点p1(x1,y...原创 2019-03-18 16:49:27 · 782 阅读 · 0 评论 -
每日练习(C程序设计实例)
(大神勿喷,我小白)一、/*有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?*/这题很简单。三层循环控制百位,十位,个位,if和逻辑语句控制互不相同且无重复。#include<stdio.h>int main(){ int i,j,k,h=1; for(i=1;i<5;i++){ for(j=1;j<5;j++){...原创 2019-03-27 23:47:12 · 455 阅读 · 0 评论 -
模拟洗牌
要求:在进行扑克牌游戏时,经常需要洗牌。洗牌后按照顺序打印每张牌的点数和花色 。需涉及到扑克牌,牌桌,玩家等类以及洗牌和按点数排序等操作。Card类中定义两个static枚举类型,Face枚举扑克牌点数,Suit枚举扑克牌花色。Card类有两个枚举类型的属性, face和suit,而且值固定,用final修饰 构造方法public Card(Face face,...原创 2019-05-21 00:45:01 · 797 阅读 · 0 评论 -
每日练习(7-1C程序)
一、编写一函数实现两个字符的比较。思路:设p1指向字符串s1,p2指向字符串s2。要求当s1=s2,返回为0;若s1s2,返回它们二者第一个不同字符的ascll码差值#include<stdio.h>int main(){ int m; char str1[100]={'C','H','I','N','A'},str2[100]={'C','H','I','N','B...原创 2019-07-02 00:05:19 · 324 阅读 · 0 评论 -
算法(1)
一、数组循环移位算法 设计一个算法,把一个含有 N 个元素的数组循环右移 K 位,要求时间复杂度为 O(N),且只允许使用两个附加变量。(1)问题:什么时数组循环移位呢?比如,A={1,2,3,4}循环右移1位,结果为,4,1,2,3A循环右移两位结果为,3,4,1,2(2)如何实现?如果移动1位,我们容易想到,将最后一个元素先存起来,然后将其余元素后移一位,再将之前存...原创 2019-08-02 19:05:26 · 264 阅读 · 0 评论 -
练习(tq1)
一、综合1.基础题(1)线性表可以用顺序表或链表存储。试问: 1)如果有n个表同时进行,并且在处理过程中各表的长度会动态发生变化,表的总数也可能发生变化,在此情况下,应选用哪种存储表示?为什么?第一想法:链表,链表存取灵活,增删方便答案:若采用顺序表,多个表共存的情况,问题求解过程中,一旦发现某个表有存满并溢出的情况,很可能要移动其它表以腾出位置为其扩充,导致大量数...原创 2019-08-05 00:51:45 · 606 阅读 · 0 评论 -
练习(stack)
一、C语言里算术表达式中的括号只有小括号。编写算法,判断一个表达式中的括号是否正确配对,表达式已经存入字符数组 exp[]中,表达式中的字符个数为n。测试用例:a(b+y)+(c-d) (c-d)-)我们人检测括号是否匹配,是从左往右看,比如测试用例2,遇到一个“(”先记着,接着往后扫描遇到的下一个括号位“)”,则划去这两个括号。继续往下扫描,遇到“)”,此时字符串已经扫描结束了,而还...原创 2019-08-11 01:29:02 · 345 阅读 · 0 评论 -
练习(wd Stack)
一、设计一个递归算法,删除不带头结点的的单链表L中所有值为x的结点第一想法:我先删除试试,要删除链表部位空,遍历单链表LinkNode *q=p->link;p->link=q->link;x=q->data;delete q;【分析】递归模型:终止条件:若L为空表,f(L,X)=不做任何事 若L->da...原创 2019-08-12 02:20:49 · 190 阅读 · 0 评论 -
练习(8-25)
11.已知二叉树以二叉链表存储,编写算法完成:对于树中每个元素值为x的结点,删去以它为根的子树,并释放相应空间想法: 删除值x为根的子树,只要能删除左、右子树,就可以释放值为x的根结点,因此宜采用后序遍历。算法思想:删除值为x的根结点,将其父结点的左(右)子女指针置空,用层次遍历易于找到某结点的父结点。void Delete(BiTree bt){ if(bt){ ...原创 2019-08-25 23:19:17 · 685 阅读 · 0 评论 -
练习(wd LN)
12、在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法小区数值相同的元素,使表中不再有重复的元素。例如{7,10,10,21,30,42,42,42,51,70},将变为{7,10,21,30,42,51,70}第一想法:遍历单链表,若当前结点的值等于其后继结点的值,则删除后继结点。否则指针后移,继续判断如此重复,直到指针为空if(L==NULL)retur...原创 2019-08-13 02:09:00 · 427 阅读 · 0 评论 -
练习(8-16)
一、设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点void Del_x(Linklist &L,int x ){ LNode *p; //p指向待删除结点 if(L=NULL) return; if(L->data!=x){ Del_x(L->next,x);//递归调用 return;...原创 2019-08-17 01:12:06 · 434 阅读 · 0 评论 -
简单的新闻分类算法(流程图描述)
在指定网页中,某个关键词出现的次数除以该网页长度称为该关键词在此网页中的词频。对新闻类网页,存在一组的关键词。因此,每个新闻页都存在一组词频,称为该新闻网页的特征向量。 设两个新闻网页的特征向量分别为:甲(a1 ,a2,.... ak)、乙(b1 ,b2,.... bk),则计算这个网页的相似度时需先计算它们的内积S=a1b1+a2b2+.....+akbk。一般情况下,新闻网页特征向量的维数...原创 2019-02-28 12:04:33 · 3322 阅读 · 0 评论