算法学习之剑指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];elsenum+=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;}
}
转载于:https://www.cnblogs.com/chz-blogs/p/9380929.html
算法学习之剑指offer(六)相关推荐
- python连续质数计算_GitHub - xxqfft/AlgorithmsByPython: 算法/数据结构/Python/剑指offer/机器学习/leetcode...
尝试用Python实现一些简单的算法和数据结构 之前的算法和数据结构基本都是用Swift写的,现在尝试用Python实现一些简单的算法和数据结构. update 20160704 准备加入<剑指 ...
- 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)
文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...
- python数据结构与算法刷题——剑指offer第二版加部分leetcode题
说不清楚,只能看代码理解的用红色标出 查找算法:查找较排序来说较简单,不外乎顺序查找和二分查找.哈希表查找和二叉排序树查找.(很多面试官喜欢让应聘者写出二分查找(如test53)的代码)[注意:二分查 ...
- 最新算法校招编程-剑指offer、Leetcode常考题目及解法分享
本资源整理了BAT.TMD等互联网算法岗校招面试过程中常考的LeetCode和剑指offer编程题:此外,还整理了部分百度.腾讯.阿里.今日头条相关的面试经验,对于正准备校招面试的同学非常值得参考复习 ...
- 算法题解(剑指Offer篇)
文章目录 栈与队列(简单) *剑指 Offer 09. 用两个栈实现队列 - 12.27 剑指 Offer 30. 包含min函数的栈 - 12.27 链表(简单) *剑指 Offer 06. 从尾到 ...
- 算法题001 剑指Offer 面试题三:二维数组中的查找
剑指Offer题目1:二维数组中的查找 题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=0 在一个二维数组中,每一行都按照从左到右递增的顺 ...
- 剑指offer六十一之序列化二叉树(待补充)
一.题目 请实现两个函数,分别用来序列化和反序列化二叉树 二.思路 三.代码 --------------------------------------------- 参考链接: 转载于:https ...
- 剑指offer六:旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...
- Python 编程进阶经典算法逻辑编程 剑指Offer
目录 1. 找到数组中重复数字(字符),返回出现频次最多 2. 给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序.给定一个数,判断这个数是否在该二维数组中. 3. 从尾到头打印链表 4 ...
最新文章
- 防火墙对nginx服务器有影响
- java获取下周一整周的日期_当前日期得到本周的开始和结束日期
- 没有上司的舞会(洛谷-P1352)
- 算法基础知识(考试复习)
- vivo X Fold跑分曝光:搭载骁龙8+12GB内存
- python stdout,在Python中的Stdout编码
- Mysq 5.7l服务无法启动,没有报告任何错误
- cxgrid 行合并单元格_Excel合并单元格无法筛选和排序,你必须掌握这3个小技巧...
- C++中#includeXXX.h和#includeXXX.h的区别
- abaqus结果名称
- 数字电视CA原理与破解方式
- 使用Python,matplotlib绘制Nomogram列线图
- 计算机电源大小,常见电脑主板和电源尺寸
- 服务器未能识别网络,服务器无法识别url中特殊字符的处理方式
- 【Build】关于-fPIC, -fpic, -fpie, -fPIE的一点理解
- 计算机应用基础学习网站,《计算机应用基础》学习手册.pdf
- “性冷淡”的企业聊天工具,里面的秘密比陌陌还多
- 计算机键盘分为哪几个键区,标准键盘一般分为哪四个键区
- 简述现代计算机系统如何进行多级划分,现代计算机系统是如何进行多级划分?...
- 浙江工商大学计算机专硕调剂2019,浙江工商大学2019年硕士研究生调剂预通知
热门文章
- MyBatis-Plus自动填充功能填坑
- yum安装 vs 源码编译安装
- python paramiko并发_python paramiko 多线程批量执行指令及批量上传文件和目录
- mpu6050 z轴校准_大渡口区上门校正检定量具外校-第三方检测计量出校准证书
- springboot上传文件同时传参数_Spring Boot 系列:使用 Spring Boot 上传文件
- element upload预览_vue2.0 使用element-ui里的upload组件实现图片预览效果方法
- 【kerberos】kerberos 认证 详情介绍
- 【kafka】kafka 消费的时候 退出
- 【kafka】Flink 消费 kafka Received unknown topic topic/partition may not exist Describe access to it
- 【Elasticsearch】Nori:官方的韩语分析插件Elasticsearch