编程题
leetcode
麦克波菲柯特
人需要先说很多话,然后保持静默
展开
-
反转链表的各种问题
这道题,使用 迭代来做的话比较好理解一些,迭代法:class Solution { public ListNode reverseList(ListNode head) { if(head==null||head.next==null) return head; ListNode newTemp = null; LitNode curNode = head; while(curNode!=null){ .原创 2020-09-19 00:36:27 · 356 阅读 · 0 评论 -
零钱兑换Ⅰ和Ⅱ的标准解法
最近看题,动态规划似乎解题模板都差不多,多次碰到零钱兑换类的题目,遂总结一二零钱兑换题图如下所示,意思比较明朗,总共amount=11,现有面额1,2,5的coin,求凑成amount所花费的最少coins。这道题,很容易想到公式 f(11) = min( f(11-1), f(11-2), f(11-5) )+1; 所以简单的状态转移方程为:dp [i] = min( dp[i], dp...原创 2020-04-05 16:22:06 · 625 阅读 · 0 评论 -
LeetCode中两个岛屿问题解题模板
前言一天不刷,浑身难受,今天上线一种模板,岛屿问题岛屿的个数直接用递归就可以解决,当然为了方便解题,我这里总结了一种模板class Solution{ public int numIslands(char[][]grid){ int count=0; for(int i=0;i<grid.length;i++){ for(int j=0;j<grid[0]...原创 2019-04-01 15:27:22 · 1408 阅读 · 1 评论 -
二叉树的一些medium题目
中序遍历二叉树给定一个二叉树,返回它的中序 遍历。示例:解答思路:可以套用模板class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer>res=new ArrayList<>(); if(root...原创 2019-03-15 19:05:54 · 403 阅读 · 0 评论 -
Java面试题链表、树和位操作
最近金九银十刚刚过去,可谓是有人欢喜有人愁,不过,今天的任务是跑不掉的,走到最后的才是胜利者,下面记录几个面试题链表之快慢法实现一个算法,找出单向链表中倒数第k个节点 太直观的解法我们就不去考虑了,我们考虑一下迭代法吧,使用两个指针P1和P2,将它们指向链表中相距K个结点的两个节点,具体做法是先将P1 和P2 指向链表首结点,然后将P2向前移动K个节点,然后以相同的速度移动这两个指针,P2 会在原创 2017-10-21 19:39:18 · 539 阅读 · 0 评论 -
ThoughtWorks线上编程题解体验
线上编程体验活动地址:https://www.nowcoder.com/activity/2018tw/index 题目我忘记了,大致意思是:输入任意数字,打印出相对应得字符例如: 不多说了直接上题解吧import java.util.Scanner;import java.util.Stack;public class ThoughtWorks_test { ...原创 2018-06-04 17:43:45 · 1694 阅读 · 0 评论 -
老生常谈:主元素问题
问题:有整型数组a[1…n],如果整数x在数组a中出现的次数多于半数,则x称为多数元素。初级方法:计算每一个元素出现的次数,算法复杂度O(NlogN)可以寻找中间值元素,因为多数元素在序列中必为中间值元素,时间复杂度是O(n)分析此问题: 容易证明引理:在原序列中去除两个不同...转载 2018-05-19 22:12:18 · 856 阅读 · 0 评论 -
2018华为春招实习笔试
今天晚上做了一下华为的春招实习题,对于我这种非Acmer来说,感觉难度不大。。第一题 忘记题目了。。代码:#include<cstdio>#include <cstring>int main(){ char str[100]; scanf("%s",str); int len = strlen(str); ...原创 2018-04-03 22:09:18 · 810 阅读 · 0 评论 -
妙解之数组篇
最近看了一些Java中的题解题目,感觉还不错,拿来记录一下如何找出数组中只出现一次的数字问题:一个整型数组中除了一个数字之外,其他数字都出现了两次。找出这个只出现一次的数字,要求时间复杂度是O(n),空间复杂度O(1) 题解:本来是打算排序后挨个比较找出这个数字,但是其时间复杂度最快都是O(nlogn),题目强调除了一个数字,其他数字都出现两次,首先想到异或运算,根据异或运原创 2018-02-04 21:50:13 · 276 阅读 · 0 评论 -
动态规划之最长公共子序列、最长公共子串和背包问题
新学期,新气象,今天简单的聊一聊简单版动态规划,然后附上两个经典的动态规划题。动态规划(百度百科) 动态规划和分治法有些类似,但是分治法求解的问题是没有重复的,然而动态规划是有的,这应该是其本质区别了。了解动态规划最简单的例子莫过于斐波那契数列了,斐波那契额数列大家应该都十分的熟悉, 动态规划版斐波那契(伪代码):Fibonacci(n) if n==0||n==1原创 2017-09-09 18:21:25 · 803 阅读 · 0 评论 -
数组中的逆序对
这道编程题很不错,于是就记录下来了,主要知识点是归并排序 题目: 在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 例如,有一个数组为Array[0..n]其中有元素a[i],a[j].如果当i<j时,a[i]>a[j],那么我们就称(a[i],a[j])为一个逆序对。在数组{7,5,6,4}中一共存在5对逆序对,分转载 2017-11-29 21:56:10 · 504 阅读 · 0 评论 -
腾讯TCTF决赛首日:赛场内争先恐后,赛场外如火如荼 | FreeBuf现场报道
2017-06-03 AngelaY FreeBuf 6月2日,深圳EPC艺术中心,多云。一大清早,南方夏天特有的湿热天气就让人感受到扑面而来的热情,在这样的环境中,同样火热的首届腾讯信息安全争霸赛(Tencent Capture The Flag,简称TCTF)决赛拉开了帷幕。TCTF赛场内:选手比赛争先恐后 首届TCTF决赛由中国网络空间安全协会竞评演练工作委员会指导,由腾讯安全发起、腾讯安全转载 2017-06-03 18:54:54 · 1389 阅读 · 0 评论 -
简单的分割法
今天上线一道简单的排序题–分割排序,时间O(n ) 输入:第一行输入表示数列a长度的整数n。第一行输入n个整数,用空格隔开。 输出:在第一行之内输出分割后的数列。数列相邻元素用1个空格隔开。另外,用作分割基准的元素用“[]”标出。输入示例: 12 13 19 9 5 12 8 7 4 21 2 6 11输出示例: 9 5 8 7 4 2 6 [11] 21 13 19 12解析:原创 2017-09-04 21:21:11 · 728 阅读 · 0 评论 -
STL的应用——已知前序、中序求后序
二叉树的前序、中序、后序遍历算是比较简单的,一般知道了中序和前(后)序,即可求后(前)序 输入:第一行输入二叉树的结点数n。 第二行输入前序的节点编号 第三行输入中序遍历的节点编号序列 节点编号为从1至n的整数。请注意,1不一定时根节点 输出:在一行中输出按后序遍历时的节点编号序列。相邻节点编号之间用1个空格隔开。 限制:1<<结点数<<100 示例原创 2017-09-06 20:45:59 · 378 阅读 · 2 评论 -
漫画算法:最小栈的实现
这次再来看一看小灰和大黄的故事 转载自:玻璃猫大神的博客,侵删 小灰回忆起当时的情景…… 题目:实现一个栈,带有出栈(pop),入栈(push),取最小元素(getMin)三个方法。要保证这三个方法的时间复杂度都是O(1)。 小灰的想法: 1.创建一个整型变量 min,初始值-1 2.当第一个元素进栈时,让mi转载 2017-08-25 12:07:36 · 1144 阅读 · 0 评论 -
入门级算法
今天我想记录的是一些关于入门级别的算法。字符串hash 将一个字符串S映射为一个整数,使得该整数可以唯一的代表字符串S。先假设字符串均由大写字母A~Z构成,不妨设A~Z为0~25,即将26个大写字母对应到了二十六进制中。按照将二十六进制转换为十进制的思路,即可实现将字符串映射为整数的需求。题目: 给出N个字符串(恰好由三位大写字母组成),再给出M个查询字符串,问每个查询字符串再N个字符串中原创 2017-08-22 11:45:59 · 651 阅读 · 0 评论 -
漫画算法:判断2的乘方
最近几天有点学懵了,心态有些小小的问题,可能是受到了台风的影响亦或者是没有及时寄存好的知识, 今天学点有趣的东西,放松放松 转载自:玻璃猫大神的博客 小灰陷入回忆当中。。。。 题目:实现一个方法,判断一个正整数是否是2的乘方(比如16是2的4次方,返回True;18不是2的乘方,返回False)。要求性能尽可能高。 解法一: 创建一个中间变量Temp,初始转载 2017-08-01 21:46:19 · 754 阅读 · 0 评论 -
B树的研究(查找、插入、删除)
讲到B树那就不得不谈一谈查找,查找不是一种数据结构而是一种基于数据结构的对数据进行处理时经常使用的一种操作。平均查找长度ASL=∑Pi×Ci (其中Pi为查找第i个记录的概率,Ci为查找第i个记录所用的比较次数)。 查找方法有很多,分为两大类:静态查找和动态查找。1、 静态查找:只能进行查找操作,无法进行插入和删除操作,表现为线性结构,有:顺序存储结构和链式存储结构。主要有:顺序查找、二分查找原创 2017-05-06 11:06:50 · 6977 阅读 · 1 评论 -
实验楼第四期楼赛
C语言之指针字符串数组 实验楼第四期楼赛是关于C语言的,共分为五大题,这是第一大题 题目:整理课程列表 介绍 冬瓜同学平时十分喜欢在实验楼学习新课程,每学完一节课就会将其记下。当学会的编程语言多了,就想整理汇总一下,看看自己的技术栈。 为了有序排列所有的编程语言,冬瓜决定使用冒泡排序对其进行排列。而字符串的比较方法使用的是字典序。如果不懂字典序,可以戳这里写链接内容。冬瓜同学原创 2017-04-03 20:52:12 · 1197 阅读 · 0 评论