import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet; public class BinarySearch {
public static void main(String[] args) {
int[] a = { 11, 27, 28, 33 };
// System.out.println(findFirstRepeat("qywyer23tdd", 11));
// ListNode head = LinkedListReverse.initialList();
// LinkedListReverse.printList(insertionSortList(head));[4,5,1,6,2,7,3,8],10
GetLeastNumbers_Solution(new int[] { 4, 5, 1, 6, 2, 7, 3, 8 }, 10);
} public static ArrayList<Integer> GetLeastNumbers_Solution(int[] input, int k) {
ArrayList<Integer> list = new ArrayList<Integer>();
int cnt = 0;
if (k > input.length || k == 0) {
return list;
}
while (cnt < k) {
list.add(input[cnt]);
cnt++;
}
Collections.sort(list); for (int i = k; i < input.length; i++) {
int num = input[i];
// 如果超出最大,则不用管,如果没有超出最大,则需要加入并踢出最大
if (num < list.get(k - 1)) {
list.remove(k - 1);
list.add(num);
Collections.sort(list);
}
}
System.out.println(list);
return null;
} /**
* 插入排序 head 1 -> 7 -> 2 -> 6 -> 9 1 -> 2 -> 6 -> 7 -> 9
*/
public static ListNode insertionSortList(ListNode head) {
ListNode pstart = head;
ListNode pcurr = head.next;
if (pstart == null) {
return null;
}
// //1 7 2 6 9 3 在7后面插入888
// do {
// int currVal = pstart.val;
// if (currVal == 7) {
// ListNode newNode = new ListNode(888, null);
// newNode.setNext(pstart.next);
// pstart.setNext(newNode);
// }
// } while ((pstart = pstart.next) != null); // 1 7 2 6 9 3 在7前面插入888
do {
int currVal = pcurr.val;
if (currVal == 7) {
ListNode newNode = new ListNode(888, null);
newNode.setNext(pcurr);
pstart.setNext(newNode);
}
} while ((pcurr = pcurr.next) != null);
return head;
} public static char findFirstRepeat(String A, int n) {
HashSet<Character> hs = new HashSet<Character>();
for (char c : A.toCharArray()) {
if (hs.contains(c)) {
return c;
} else {
hs.add(c);
}
}
return ' ';
} public static int getPos(int[] A, int n, int val) {
int start = 0;
int end = n - 1;
int mid = (end - start) / 2;
while (start < end) {
if (A[mid] == val) {
return mid;
} else if (A[mid] > val) {
end = mid;
} else if (A[mid] < val) {
start = mid;
}
mid = start + (end - start) / 2;
}
return 0;
}
}

算法练习,链表二分最大n个的更多相关文章

  1. 图解堆算法、链表、栈与队列(Mark)

    原文地址: 图解堆算法.链表.栈与队列(多图预警) 堆(heap),是一类特殊的数据结构的统称.它通常被看作一棵树的数组对象.在队列中,调度程序反复提取队列中的第一个作业并运行,因为实际情况中某些时间 ...

  2. Python 迭代器&生成器,装饰器,递归,算法基础:二分查找、二维数组转换,正则表达式,作业:计算器开发

    本节大纲 迭代器&生成器 装饰器  基本装饰器 多参数装饰器 递归 算法基础:二分查找.二维数组转换 正则表达式 常用模块学习 作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - ...

  3. 算法基础~链表~排序链表的合并(k条)

    算法基础~链表~排序链表的合并(k条) 1,题意:已知k个已排序链表头结点指针,将这k个链表合并,合并后仍然为有序的,返回合并后的头结点. 2,方法之间时间复杂度的比较: 方法1(借助工具vector ...

  4. Java数据结构和算法之链表

    三.链表 链结点 在链表中,每个数据项都被包含在‘点“中,一个点是某个类的对象,这个类可认叫做LINK.因为一个链表中有许多类似的链结点,所以有必要用一个不同于链表的类来表达链结点.每个LINK对象中 ...

  5. [ACM_图论] The Perfect Stall 完美的牛栏(匈牙利算法、最大二分匹配)

    描述 农夫约翰上个星期刚刚建好了他的新牛棚,他使用了最新的挤奶技术.不幸的是,由于工程问题,每个牛栏都不一样.第一个星期,农夫约翰随便地让奶牛们进入牛栏,但是问题很快地显露出来:每头奶牛都只愿意在她们 ...

  6. 算法:时间复杂度+二分查找法(Java/Go/Python)实现

    导读 曾几何时学好数据结构与算法是我们从事计算机相关工作的基本前提,然而现在很多程序员从事的工作都是在用高级程序设计语言(如Java)开发业务代码,久而久之,对于数据结构和算法就变得有些陌生了,由于长 ...

  7. 算法练习LeetCode初级算法之链表

    删除链表中的节点 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode ne ...

  8. C# 算法之链表、双向链表以及正向反向遍历实现

    1.简介 链表是一种非常基础的数据结构之一,我们在日常开发种都会接触到或者是接触到相同类型的链表数据结构.所以本文会使用C#算法来实现一个简单的链表数据结构,并实现其中几个简单的api以供使用. 2. ...

  9. 常用算法1 - 快速排序 & 二分查找

    1. 二分查找法: 二分查找法是对一组有序的数字中进行查找,传递相应的数据,进行比较查找到与原数据相同的数据,查找到了返回对应的数组下标,没有找到返回-1. 二分查找法要求数据为一组有序的序列(大到小 ...

随机推荐

  1. redis集群创建

    先参考文章 https://www.cnblogs.com/PatrickLiu/p/8458788.html https://blog.csdn.net/fengshizty/article/det ...

  2. 使用SHOW binlog events查看binlog内容

    用mysqlbinlog命令行查看binlog,觉得比较麻烦,突然发现原来mysql有个命令可以直接查看. SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] ...

  3. [UE4]小地图UI设计

    一.新建一个名为TestMiniMap的UserWidget用来使用小地图StaticMiniMap. 二.在左侧“User Created”面板中可以看到除自身以外的其他所有用户创建的UserWid ...

  4. 网站简介-为什么网站的ICO图标更新后,ie浏览器没有更新过来?

    为什么网站的ICO图标更新后,ie浏览器没有更新过来? 如何更新本地ico图标? 收藏夹里的网址访问后网站ico小图标怎么不会更新,还是没图标的. 如果制作了一个新的favicon.ico图标,并且已 ...

  5. json与bson的区别

    bson是由10gen开发的一个数据格式,目前主要用于mongoDB中,是mongoDB的数据存储格式.bson基于json格式,选择json进行改造的原因主要是json的通用性及json的schem ...

  6. uWSGI, Gunicorn, 啥玩意儿?

    因为nginx等优秀的开源项目,有不少本来不是做服务器的同学也可以写很多服务器端的程序了.但是在聊天中会发现,大家虽然写了不少代码,但是对wsgi是什么,gunicorn是什么,反向代理又是什么并不了 ...

  7. 从入门到熟悉 HTTPS 的 9 个问题

    九个问题从入门到熟悉HTTPS 最近一边做毕设一边学习编程.前两天她问我 HTTPS 的问题,本来想直接扔一篇网上的教程给她.后来想了一下,那些文章大多直接介绍概念, 对新手不太友好,于是我干脆亲自给 ...

  8. File Input Features

    文件输入功能 1.该插件将将一个简单的 HTML 文件输入转换为高级文件选取器控件.将有助于对不支持 JQuery 或 Javascript 的浏览器的正常 HTML 文件输入进行回退. 2.文件输入 ...

  9. 网站分析基础及KPI实践

    一:网站分析是什么? 网站分析(Web Analytics)即网站访客行为分析,通过对网站数据进行定量和定性的分析,来不断驱动和提高访问者在网站中的体验,并将访客转化为你的商业目标(在线及离线KPI) ...

  10. 浮动ip cz