算法
WGeeker
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【算法】快速排序遇到的问题
public static int partion(int[] list, int first, int last) { int pivot = list[first]; int low = first + 1; int high = last; while (low < high) { //从左往右找到大于主元的元素原创 2017-01-11 20:02:08 · 647 阅读 · 0 评论 -
【LeetCode】1104. Path In Zigzag Labelled Binary Tree
题目In an infinite binary tree where every node has two children, the nodes are labelled in row order.In the odd numbered rows (ie., the first, third, fifth,…), the labelling is left to right, while ...原创 2019-06-30 13:53:25 · 569 阅读 · 0 评论 -
【LeetCode】1105. Filling Bookcase Shelves(填充书架)
题目附近的家居城促销,你买回了一直心仪的可调节书架,打算把自己的书都整理到新的书架上。你把要摆放的书 books 都整理好,叠成一摞:从上往下,第 i 本书的厚度为 books[i][0],高度为 books[i][1]。按顺序 将这些书摆放到总宽度为 shelf_width 的书架上。先选几本书放在书架上(它们的厚度之和小于等于书架的宽度 shelf_width),然后再建一层书架。重复...原创 2019-07-14 10:29:49 · 1437 阅读 · 0 评论 -
【面试题】有序数组截断、交换后的查找算法
题目将一段有序数组从中间某个位置截断,分成两部分,比如1,2,3,4,5,6,7,8从4的位置截断成两部分1,2,3,4和5,6,7,8,然后交换这两部分的顺序变成5,6,7,8,1,2,3,4,写成对变换后的数组的查找算法,如果查找成功则返回在数组中的索引(变换后),查找失败则返回-1分析这道题直接for循环遍历可以完成,但这是一道面试题,那就要考虑尽可能降低算法的时间复杂度,所以考虑一下...原创 2019-06-28 21:14:54 · 1845 阅读 · 1 评论 -
【LeetCode】1081. Smallest Subsequence of Distinct Characters
题目Return the lexicographically smallest subsequence of text that contains all the distinct characters of text exactly once.Example 1:Input: "cdadabcc"Output: "adbc"Example 2:Input: "abcd"Outp...原创 2019-06-20 20:43:05 · 973 阅读 · 0 评论 -
【CodeWars】Path Finder #2: shortest path
题意题目链接:https://www.codewars.com/kata/path-finder-number-2-shortest-pathTaskYou are at position [0, 0] in maze NxN and you can only move in one of the four cardinal directions (i.e. North, East, S...原创 2019-06-09 13:28:37 · 606 阅读 · 0 评论 -
【LeetCode】1010. Pairs of Songs With Total Durations Divisible by 60
题目https://leetcode.com/problems/pairs-of-songs-with-total-durations-divisible-by-60/In a list of songs, the i-th song has a duration of time[i] seconds. Return the number of pairs of songs for whi...原创 2019-06-18 22:30:45 · 433 阅读 · 0 评论 -
【CodeWars】int32 to IPv4
题意题目链接:https://www.codewars.com/kata/int32-to-ipv4/train/java/5cebc1b2c6c7fc0022674279题目意思是将一个长整型的的数字转换成ipv4,比如2149583361的二进制表示是10000000001000000000101000000001,而ipv4是每个点是之间的数值大小取值是0~255,也就是二进制的八位...原创 2019-06-02 20:54:32 · 448 阅读 · 0 评论 -
【CodeWars】Counting Duplicates
题意题目链接:https://www.codewars.com/kata/counting-duplicates/train/java/5cf118cee10216001acc1c83题目意思很简单,就是求出给定字符串中出现次数最多的字符出现的次数,如果是字母则大小写,思路也比较简单,有人使用Map来记录字符出现的次数去实现,我的做法是定义一个大小为ASCII最大值(127)的数组,以每个...原创 2019-06-02 20:21:50 · 939 阅读 · 0 评论 -
【CodeWars】Ones and Zeros
1.题意题目的意思是给定一个整型数组,数组的每个元素只能取0或1,将数组所有元素按序组成的二进制串转换成十进制的数值2. 代码代码很简单,按照二进制计算的思路来写就行,假设返回的值是sum,初始化为0,从第一位开始,进行sum = sum * 2,然后再加上当前值,直到算完最后一位,我这里使用位运算,事实上和前面是一样的,只是更贴合二进制计算的本质import java.util.List...原创 2019-05-27 18:48:46 · 360 阅读 · 0 评论 -
【CodeWars】Human readable duration format
1.题意题目意思很简单,就是给定一个秒数seconds,计算这个seconds的year、day、hour、minute、second,以"1year, 2 days, 1 hour, 1 minute and 2 seconds"这样形式的字符串返回,其中数值为0 的部分不显示,最后一个数值用"and"拼接,如果这个0秒则返回"now"2.代码一开始想的是算出这些值,然后用if else来...原创 2019-05-27 18:31:24 · 955 阅读 · 0 评论 -
【CodeWars】Square into Squares. Protect trees!
1.题意这题的意思是给定一个数字n,在经过decompose(n)处理之后得到一个一组数字,这组数字的平方和要等于n^2,这组数中最大值要小于n(如果可以等于n的话直接返回n就是了),并且如果存在多组解需要取最大值最大的那组解。就像题目中的例子说的那样:Examplesdecompose(11) must return [1,2,4,10]. Note that there are act...原创 2019-05-25 11:03:17 · 1109 阅读 · 0 评论 -
【数据挖掘】数据挖掘经典算法之The K-means algorithm
聚类 聚类是一种无监督的学习,它将相似的对象归到同一个簇中。聚类的方法几乎可以应用于所有对象,簇内的对象越相似,聚类的效果越好。K-means(K-均值聚类)算法使一种聚类算法。之所以称之为K-均值使因为它可以发现k个不同的簇,且每个簇的中心采用簇中所含值的均值计算而成。K-均值聚类算法 K-均值是发现给定数据集的k个簇的算法。簇个数k是用户给定的,每一个簇通过其聚类中心,即簇中所有点的...原创 2018-12-04 19:09:55 · 374 阅读 · 0 评论 -
【算法】无向图中的环
无向图中的环判断一个具有n个结点m条边的无向图中是否包含环,如果包含则输出其中一个环,要求时间复杂度为O(m+n)。可以根据对图的深度优先算法(DSF)拓展来求解此题。主要过程如下:用数组VST[]记录图中访问过的结点(如 VST[i] 表示第i个结点已经被访问)用PRE[]记录当前结点的父结点的位置(如 PRE[i]=j 表示i个结点的父结点的位置是j)通过DFS来搜索图中的结点,当搜...原创 2018-10-29 20:02:47 · 6803 阅读 · 1 评论 -
【LeetCode】1114. Print in Order(多线程:按序打印)
LeetCode新出了一类多线程的题目,主要考察的是对编程语言中多线程的用法以及多线程的算法,目前只有四题,这篇博客是对第一个1114这个多线程题目的分析。题目Suppose we have a class:public class Foo { public void first() { print("first"); } public void second() { print...原创 2019-07-31 21:37:00 · 1159 阅读 · 3 评论
分享