java
ikebo
ikebo.cc
展开
-
设计一个有getMin功能的栈
题目 实现一个特殊的栈, 在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。 要求 1. pop、push、getMin操作的时间复杂度都是O(1)。 2. 设计的栈类型可以使用现成的栈结构。 解答 // 设计一个有getMin功能的栈 import java.util.*; class MyStack { private Stack<Integer&g...原创 2018-08-28 20:31:14 · 120 阅读 · 0 评论 -
由两个栈组成的队列
题目 编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek)。 解答 必须做到以下两点: 1. 如果stackPush 要往 stackPop 中压入数据,那么必须一次性把stackPush中的数据全部压入。 2. 如果stackPop 不为空,stackPush绝对不能向stackPop中压入数据。 代码 // 用两个栈组成的队列 import ja...原创 2018-08-28 20:37:50 · 109 阅读 · 0 评论 -
Java 中的参数传递
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Java 中的参数传递方式是传递值, 也称为”值传递”。 当参数变元是一个简单类型时,值传递意味着这个方法不能改变参数变元的值,即方法中变量所做的改变在方法外都是不可见的,也可以说不起作用; 当参数变元是原创 2018-09-12 16:31:18 · 196 阅读 · 0 评论 -
小和问题和逆序对问题
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数组中每个数的左边所有比这个数小的数累加起来,为这个数组的小和。当然可以每个数遍历所有左边的数,复杂度为O(N^2)。这是一个典型的归并排序的应用,整个数组的小和为左边组内的小和加右边组内的小和加整体组间的小和。 代码 // 归并排序 import java.util.Arrays; public class原创 2018-11-26 13:29:25 · 285 阅读 · 0 评论 -
货币拼面值问题
现有n1+n2种面值的硬币,其中前n1种为普通币,可以取任意枚,后n2种为纪念币,每种最多只能取一枚,每种硬币有一个面值,问能用多少种方法拼出m的面值? m面值的货币,若分给n1的面值为n,则剩下的m-n面值让n2去拼,两种方法数相乘为此次分配的方法数。所以最终的方法数为f(0)*g(m-0) + f(1)*g(m-1) + … + f(m) * g(m-m)。 f 和 g 为两个动态规划问题。f...原创 2018-12-02 23:30:01 · 943 阅读 · 0 评论 -
排序(二)
快速排序 &amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;nbsp;经典快排中,每次选择区间的最后一个数进行partition过程,这个跟数据状态是有关系的,如果原创 2018-11-27 19:38:24 · 120 阅读 · 0 评论 -
Java中的比较器(自定义比较)
大部分语言中应该都有自定义比较的方法,如重载运算符,lambda表达式等。Java中是通过实现Comparator接口达到此目的。 import java.util.Arrays; public class Comparator { public static class Student { public String name; public int i...原创 2018-12-01 20:00:19 · 1646 阅读 · 0 评论 -
求数组若排好序后相邻两数的最大差值 O(N)
给定一个数组,求如果排序之后,相邻两数的最大差值。要求时间复杂度O(N),且要求不能用非基于比较的排序。 此题用了桶排序的思想,但是没有真正排序。 假设数组中有N个数,则开一个N+1大小的数组表示有N+1个桶,确保最大差值中的两个数一定在不同的桶中。在数进桶的过程中记录每一个桶的最大值,最小值及是否进来过数。最后的最大差值为所...原创 2018-12-01 21:36:59 · 297 阅读 · 0 评论 -
Java 实现聊天室
效果: 源码地址https://github.com/ikebo/SimpleChat 客户端安装包下载地址https://download.csdn.net/download/k_runtu/10886345 客户端代码-Client.java package main; /*省略引入的包*/ import java.awt.EventQueue; import javax.swing.J...原创 2018-12-29 21:55:18 · 314 阅读 · 0 评论