list排序

leetcode ——34.在排序数组中查找元素的第一个和最后一个位置

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-30 19:09:55
class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: a=nums.count(target) if a==0: return [-1,-1] else: d=nums.index(target) if a==1: return [d,d] else: return [d,d+a-1] 执行用时 :112 ms, 在所有 Python3 提交中击败了77.01%的用户 内存消耗 :15 MB, 在所有 Python3 提交中击败了5.30%的用户 别人有运行时间短的例子,但是我看不进去了,只能挑最简单的方法来做了。。。 脑子已经运行不动了。 ——2019.10.8 来源: https://www.cnblogs.com/taoyuxin/p/11636758.html

夯实Java基础系列19:一文搞懂Java集合类框架,以及常见面试题

牧云@^-^@ 提交于 2019-11-30 19:04:41
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 本文参考 https://www.cnblogs.com/chenssy/p/3495238.html 在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影! java中集合大家族的成员实在是太丰富了,有常用的ArrayList、HashMap、HashSet,也有不常用的Stack、Queue,有线程安全的Vector、HashTable,也有线程不安全的LinkedList、TreeMap等等! 上面的图展示了整个集合大家族的成员以及他们之间的关系。下面就上面的各个接口、基类做一些简单的介绍(主要介绍各个集合的特点。区别)。 下面几张图更清晰地介绍了结合类接口间的关系: Collections和Collection。 Arrays和Collections。 Collection的子接口 map的实现类 Collection接口 Collection接口是最基本的集合接口,它不提供直接的实现,Java

list排序

巧了我就是萌 提交于 2019-11-30 18:08:27
Collections.sort(list,(o1,o2) -> { String name1=o1.get("name").toString(); String name2=o2.get("name").toString(); return name1.compareTo(name2) }); Collections.sort(list,(o1,o2) ->Integer.compare(Integer.valueOf(o2.get("value").toString()),Integer.valueOf(o1.get("value").toString()))); 来源: https://my.oschina.net/u/3677751/blog/3112714

List排序 List<Map>

試著忘記壹切 提交于 2019-11-30 14:59:21
待排序的List格式List<Map> 升序 对Map中的Int属性排序 public static List<Map<String, Object>> listContainMapSortByIntAsc(List<Map<String, Object>> list) { Collections.sort(list, new Comparator<Map<String, Object>>() { @Override public int compare(Map<String, Object> o1, Map<String, Object> o2) { /*name1是从你list里面拿出来的一个*/ int name1 = Integer.parseInt(o1.get("allCounts").toString()); /*name1是从你list里面拿出来的第二个name*/ int name2 = Integer.parseInt(o2.get("allCounts").toString()); int value = name2 - name1; return value; } }); return list; } 降序 对Map中的String属性排序 public static List<Map<String, Object>>

python 函数的多种用法

 ̄綄美尐妖づ 提交于 2019-11-30 12:35:36
1. lambda 匿名函数 语法: 变量 = lambda 参数: 返回值 不能完成复杂的操作2. sorted() 函数 排序: 1. 可迭代对象 2. key=函数, 排序规则 3. reverse, 是否倒序3. filter() 函数 过滤 1. 函数, 返回True或False 2. 可迭代对象4. map() 映射函数 1. 函数 2. 可迭代对象1. lambda 匿名函数 # lambda: 后面是函数体(相当于是return后面的内容) # a 参数 c = lambda a: a*a # 一行搞定一个函数, 但是,不能完成复杂的函数操作,c相当于函数名 print(c) # 相当于访问lambda的函数名 print(c(5)) print(c.__name__) # 查看函数名,c是一个变量 c = lambda a,b: a+b print(c(1,2)) 2. sorted 函数 lst = [3,34,1,14,5,23,15,25,30,12,41] lst.sort() print(lst) # 结果是顺序 ll = sorted(lst,reverse = True) # 内置函数,返回给你一个新列表, 新列表是被排序的 print(ll) # 结果是倒序,reverse=True 倒序 # 给列表排序, 根据字符串的长度进行排序 #

java面试(1)

◇◆丶佛笑我妖孽 提交于 2019-11-30 10:13:56
Java集合详解【面试+工作】 在说集合前我们不得不说一下 数组 数组的作用: 存放一组相同的数据类型(基本或对象)的数据,从而实现对数据的管理 优势: 可以快速的通过下标对数组元素进行访问,效率高 劣势: 容量实现定义好了,不能随着需求变化而扩容 因此出现了更好的集合框架 一、数组和集合的比较 数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下: 1:数组能存放基本数据类型和对象,而集合类存放的都是对象的引用,而非对象本身! 2:数组容易固定无法动态改变,集合类容量动态改变。 3:数组无法判断其中实际存有多少元素,length只告诉了数组的容量,而集合的size()可以确切知道元素的个数 4:集合有多种实现方式和不同适用场合,不像数组仅采用顺序表方式 5:集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性即可实现各种复杂操作,大大提高了软件的开发效率 二、Java集合 Collection和Map,是集合框架的根接口。 Collection的子接口: Set:接口 ---实现类: HashSet、LinkedHashSet Set的子接口SortedSet接口---实现类:TreeSet List:接口---实现类: LinkedList,Vector,ArrayList List集合

KNN

雨燕双飞 提交于 2019-11-30 10:08:29
k-近邻(kNN, k-NearestNeighbor)算法是一种基本分类与回归方法 优缺点: 优点:精度高、对异常值不敏感、无数据输入假定 缺点:计算复杂度高、空间复杂度高 适用数据范围:数值型和标称型 流程伪代码: 对于每一个在数据集中的数据点: 计算目标的数据点(需要分类的数据点)与该数据点的距离 将距离排序:从小到大 选取前K个最短距离 选取这K个中最多的分类类别 返回该类别来作为目标数据点的预测值 核心代码: def classify0(inX, dataSet, labels, k): # 1. 距离计算 dataSetSize = dataSet.shape[0] # tile生成和训练样本对应的矩阵,并与训练样本求差 diffMat = tile(inX, (dataSetSize, 1)) - dataSet # 取平方 sqDiffMat = diffMat ** 2 # 将矩阵的每一行相加 sqDistances = sqDiffMat.sum(axis=1) # 开方 distances = sqDistances ** 0.5 # 根据距离排序从小到大的排序,返回对应的索引位置 # argsort() 是将x中的元素从小到大排列,提取其对应的index(索引),然后输出到y。 # 例如:y=array([3,0,2,1,4,5]) 则,x[3]=1最小

数据库中间件 Sharding-JDBC 源码分析 —— 结果归并

妖精的绣舞 提交于 2019-11-30 05:57:49
摘要: 原创出处 http://www.iocoder.cn/Sharding-JDBC/result-merger/ 「芋道源码」欢迎转载,保留摘要,谢谢! 本文主要基于 Sharding-JDBC 1.5.0 正式版 1. 概述 2. MergeEngine 2.1 SelectStatement#setIndexForItems() 2.2 ResultSetMerger 2.2.1 AbstractStreamResultSetMerger 2.2.2 AbstractMemoryResultSetMerger 2.2.3 AbstractDecoratorResultSetMerger 3. OrderByStreamResultSetMerger 3.1 归并算法 3.2 #next() 4. GroupByStreamResultSetMerger 4.1 AggregationUnit 4.2 #next() 5. GroupByMemoryResultSetMerger 5.1 #next() 6. IteratorStreamResultSetMerger 7. LimitDecoratorResultSetMerger 666. 彩蛋 ������关注 微信公众号:【芋道源码】 有福利: 1. RocketMQ / MyCAT / Sharding-JDBC

关于Comparable和Comparator那些事

风格不统一 提交于 2019-11-30 05:47:33
  在实际项目开发过程中,我们经常需要对某个对象或者某个集合中的元素进行排序,常用的两种方式是实现某个接口。常见的可以实现比较功能的接口有Comparable接口和 Comparator接口,那么这两个又有什么区别呢? 关于Comparable接口   关于Comparable接口,其位于 java.lang.Comparable 中,实现这个接口,可以通过重写其 compareTo 方法进行自定义排序,一般用于实体类中,比如针对学生对象,根据其姓名、身高、年龄、地址等进行排序,商品根据名称、库存、价格排序等。下面一段代码中主要是对 学生的姓名、年龄、地址进行排序,当我们重写其 compareTo 方法后,对于一个学生对象的集合,我们可以通过调用 Collections.sort(studentList) 对其进行排序,即可达到想要的效果。    1 public class Students implements Comparable<Students> { 2 3 private String name; 4 private int age; 5 private String address; 6 7 public String getName() { 8 return name; 9 } 10 11 public void setName(String name) { 12

Google guava工具类的介绍和使用

懵懂的女人 提交于 2019-11-30 04:09:48
概述 工具类 就是封装平常用的方法,不需要你重复造轮子,节省开发人员时间,提高工作效率。谷歌作为大公司,当然会从日常的工作中提取中很多高效率的方法出来。所以就诞生了guava。 guava的优点: 高效设计良好的API,被Google的开发者设计,实现和使用 遵循高效的java语法实践 使代码更刻度,简洁,简单 节约时间,资源,提高生产力 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如: 集合 [collections] 缓存 [caching] 原生类型支持 [primitives support] 并发库 [concurrency libraries] 通用注解 [common annotations] 字符串处理 [string processing] I/O 等等 。 使用 引入gradle依赖(引入Jar包) compile 'com.google.guava:guava:26.0-jre' 1.集合的创建 // 普通Collection的创建 List<String> list = Lists.newArrayList(); Set<String> set = Sets.newHashSet(); Map<String, String> map = Maps.newHashMap(); // 不变Collection的创建