算法学习之剑指offer(六)
题目1
题目描述
import java.util.*;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
ArrayList<Integer> list = new ArrayList<Integer>();
if(input.length<k||k==0)
return list;
for(int i=0;i<k;i++){
list.add(input[i]);
}
for(int i=k;i<input.length;i++)
{
int max_index = getMax(list);
int max_val = list.get(max_index);
if(max_val>input[i])
{
list.set(max_index,input[i]);
}
}
return list;
}
public int getMax(ArrayList<Integer> list){
int max_index = 0;
for(int i=0;i<list.size();i++){
if(list.get(max_index)<list.get(i))
max_index=i;
}
return max_index;
}
}
题目2
题目描述
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
if(array==null||array.length==0)
return 0;
int result = array[0],num=0;
for(int i=0;i<array.length;i++){
if(num<=0)
num=array[i];
else
num+=array[i];
if(num>result)
result=num;
}
return result;
}
}
题目3
题目描述
纯属找数字规律的题。提供一种最一般的解法
public class Solution {
public int NumberOf1Between1AndN_Solution(int n) {
int count=0;
while(n>0){
String str=String.valueOf(n);
char [] chars=str.toCharArray();
for(int i=0;i<chars.length;i++){
if(chars[i]=='1')
count++;
}
n--;
}
return count;
}
}
题目4
题目描述
import java.util.ArrayList;
import java.util.*;
public class Solution {
public String PrintMinNumber(int [] numbers) {
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i=0;i<numbers.length;i++){
list.add(numbers[i]);
}
Collections.sort(list,new Comparator<Integer>(){
public int compare(Integer a,Integer b){
int s1 = Integer.parseInt(a+""+b);
int s2 = Integer.parseInt(b+""+a);
return s1>s2?1:-1;
}
});
StringBuilder sb = new StringBuilder();
for(Integer i:list)
sb.append(i+"");
return sb.toString();
}
}
题目5
题目描述
import java.util.*;
public class Solution {
public int GetUglyNumber_Solution(int index) {
if(index==0)
return 0;
Queue<Integer> q2 = new LinkedList<Integer>();
Queue<Integer> q3 = new LinkedList<Integer>();
Queue<Integer> q5 = new LinkedList<Integer>();
q2.add(2);q3.add(3);q5.add(5);
int num=1,min,ugly=1;
while(num!=index){
ugly = Math.min(q2.peek(),Math.min(q3.peek(),q5.peek()));
if(ugly==q2.peek()){
q2.add(ugly*2);q3.add(ugly*3);q5.add(ugly*5);q2.poll();
}
if(ugly==q3.peek()){
q3.add(ugly*3);q5.add(ugly*5);q3.poll();
}
if(ugly==q5.peek()){
q5.add(ugly*5);q5.poll();
}
num++;
}
return ugly;
}
}
题目6
题目描述
import java.util.*;
public class Solution {
public int FirstNotRepeatingChar(String str) {
if(str.length()==0)
return -1;
HashMap<Character,Integer> hm = new LinkedHashMap<Character,Integer>();
char[] chars = str.toCharArray();
for(Character c:chars){
int times;
Integer i = hm.get(c);
times=(i==null)?1:i.intValue()+1;
hm.put(c,times);
}
int index=0;;
for(Character c:hm.keySet()){
int k = hm.get(c);
if(hm.get(c)==1){
index = str.lastIndexOf(c);
break;
}
}
return index;
}
}
算法学习之剑指offer(六)的更多相关文章
- 算法学习之剑指offer(十一)
一 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. import java.util.*; ...
- 算法学习之剑指offer(九)
一 题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). public class Solution ...
- 算法学习之剑指offer(十)
一 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3 ...
- 算法学习之剑指offer(八)
题目一 题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没 ...
- 算法学习之剑指offer(五)
题目1 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. public class Solution ...
- 算法学习之剑指offer(四)
题目1 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) /** public class TreeNode { int val = 0; Tree ...
- 算法学习之剑指offer(十二)
一 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子.如果一条路径经过了矩 ...
- 算法学习之剑指offer(七)
题目1 题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P% ...
- 算法学习之剑指offer(三)
题目1 题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 如果一个整数不为0,那么这个整数至少有一位是1.如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在 ...
随机推荐
- Java的8种基本数据类型的内存占用字节数和取值范围
这是8中基本类型的内存中占用字节数(取值范围是2的(字节数X8-1)次方) 1.整型 类型 存储需求 bit数 取值范围 byte 1字节 1*8 -128-127 short 2字节 2*8 -32 ...
- 【第二十二篇】从客户端中检测到有潜在危险的 Request.Form 值
提交数据的时候 用js的方法 escape(富文本框的值) 例:escape(UM.getEditor('Content').getContent()); 取值的时候 unescape ...
- kubernetes集群部署高可用Postgresql的Stolon方案
目录 前言 ....前言 本文选用Stolon的方式搭建Postgresql高可用方案,主要为Harbor提供高可用数据库,Harbor搭建可查看kubernetes搭建Harbor无坑及Harbor ...
- Android的有序广播和无序广播(解决安卓8.0版本之后有序广播的接收问题)
前言 Google从Android8.0版本开始,对在清单文件中静态注册广播做了限制. *** 特殊广播(动态注册广播接收者) 说:有序广播和无序广播之前,咱们先来说下Android中一些特殊的广播如 ...
- 《JavaScript DOM 编程艺术》 学习笔记
目录 <JavaScript DOM 编程艺术> 学习笔记 第一章 js简史 第二章 js语法 准备工作 语法 第三章 DOM DOM中的D DOM中的O DOM中的M 第四章 js图片库 ...
- 简单粗暴的关键两部实现连接远程云服务器数据库SqlServer 2012
要连上远程服务器的数据库,前面的那些数据库配置就不说了,网上都一样. 下面讲讲关键的两点,也是我尝试普通的方法无效后通过下面的方法成功连上的. 1.点开云服务器的安全组,看看里面的端口是否都放行了.我 ...
- [C++]invalid initialization of non-const reference of type 'std::__cxx11::string& {aka std::__cxx11::basi
解决方法:在参数前面加一个cosnt或者把引用符号去掉
- Centos7 安装Nginx 实战01
1.首先下载 Nginx wget http://nginx.org/download/nginx-1.17.0.tar.gz (版本什么的自己去官网找好) 2.解压 tar -zxvf nginx- ...
- 第八届蓝桥杯java b组第一题
1,标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购 ...
- java Swing 界面化查询数据库表
两天从0基础写的.没有按钮对话框功能,只是简单的实现. 当然代码上有很多需要优化的,基本需要重写哈哈哈.但是我怕以后有需要所以还是存一下好了.<把RS结果集,放vector里面,用vector构 ...