编程题
每日一题
c罗天下第一
此人很懒,不懒
展开
-
编程题-栈的压入弹出序列
编程题-栈的压入弹出序列题目c#代码题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)c#代码using System.Collections.Generic;class Solution{ public bool IsPopOrder原创 2021-01-31 12:57:20 · 185 阅读 · 0 评论 -
编程题-删除链表中重复的节点
编程题-删除链表中重复的节点题目c#代码题目在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5示例1输入{1,2,3,3,4,4,5}返回值{1,2,5}c#代码public class ListNode{ public int val; public ListNode next; public原创 2021-01-31 12:55:14 · 245 阅读 · 0 评论 -
编程题-树的子结构
编程题-树的子结构题目c#代码题目输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)示例1输入{8,8,#,9,#,2,#,5},{8,9,#,2}返回值truec#代码public class TreeNode{ public int val; public TreeNode left; public TreeNode right; public TreeNode (int x) { va原创 2021-01-20 21:44:53 · 210 阅读 · 0 评论 -
编程题-链表中环的入口节点
编程题-链表中环的入口节点题目解析c#代码题目给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。解析首先要判断这个链表有没有环,可以定义两个指针p1,p2 让p1每次走两步p2每次走一步,如果p1能追上p2就说明有环,如果p1访问到空就没有环。然后找到环中有几个节点,就让p1往前走直到遇到p2。循环的次数就是节点的个数。然后把两个指针都指向头节点。让p1先走环的次数的步数 ,然后p1,p2以相同速度走。相遇的节点就是环的入口节点。c#代码public class Li原创 2021-01-18 18:13:52 · 80 阅读 · 0 评论 -
编程题-链表中倒数第k个节点
编程题-链表中倒数第k个节点题目解析c#代码题目输入一个链表,输出该链表中倒数第k个结点。(单向链表)示例1输入1,{1,2,3,4,5}返回值{5}解析定义两个指针 同时指向头结点,第一个指针向前走k-1步,然后同步向后走,直到第一个指针走到最后,这样第二个指针就是倒数第k个节点。c#代码public class ListNode{ public int val; public ListNode next; public ListNode (int x)原创 2021-01-17 10:55:29 · 115 阅读 · 0 评论 -
编程题-剪绳子
编程题-剪绳子题目解析C#代码题目给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],…,k[m]。请问k[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入描述:输入一个数n,意义见题面。(2 <= n <= 60)返回值描述:输出答案。示例1输入8返回值18解析贪心法,每次剪出3的长度 如果长原创 2021-01-04 16:47:51 · 260 阅读 · 0 评论 -
编程题-矩阵中的路径
编程题-矩阵中的路径题目解析c#代码题目请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。示例1输入“ABCESFCSADEE”,3,4,“ABCC原创 2021-01-03 22:40:11 · 183 阅读 · 0 评论 -
编程题-旋转数组的最小数字
编程题-旋转数组的最小数字题目解析c# 代码题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。输入[3,4,5,1,2]输出1解析使用二分法,还要考虑到特殊情况如0,1,1,1,1c# 代码class Program { static void Main(string[] args) {原创 2021-01-02 22:13:01 · 124 阅读 · 0 评论 -
编程题-二进制计数
编程题-二进制计数题目输入描述输入例子输出解析代码题目小A刚学了二进制,他十分激动。为了确定他的确掌握了二进制,你给他出了这样一道题目:给定N个非负整数,将这N个数字按照二进制下1的个数分类,二进制下1的个数相同的数字属于同一类。求最后一共有几类数字?输入描述输入的第一行是一个正整数T(0<T<=10),表示样例个数。对于每一个样例,第一行是一个正整数N(0<N<=...原创 2020-05-06 17:59:42 · 637 阅读 · 0 评论 -
编程题-两个栈实现一个队列
编程题-两个栈实现一个队列题目解析代码题目用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解析使用两个栈模拟一个队列,入队先判断栈2是不是空,如果不是空就把元素导入栈1然后向栈1入栈,出队就是把栈1导入栈2然后出栈2的最上面的元素,也要先判断栈2空不空,不空的话可以直接出栈2.代码// A code blockvar foo = 'bar';...原创 2020-05-04 23:24:15 · 169 阅读 · 0 评论