算法
文章平均质量分 53
进击の程序猿!
这个作者很懒,什么都没留下…
展开
-
LeetCode Q30 串联所有单词的子串
Q30 串联所有单词的子串题目描述给定一个字符串 s 和一些 长度相同 的单词 words 。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,不必考虑words中单词的顺序,words中可能包含相同的单词。解题思路如果子串是恰好由words中所有单词串联而成,则说明子串和words数组的构成成分一样(即words数组中包含n个单词hello,则子串中也包含n个hello)。通过words中的单词及其出现次数作原创 2021-10-10 19:46:02 · 205 阅读 · 0 评论 -
LeetCode Q29 两数相除
Q29 两数相除题目描述:不使用乘法、除法以及mod运算符,实现两整数相除,结果截去小数部分。输入保证除数(divisor)不为0,如果结果溢出,则返回Integer.MAX_VALUE思路:作差法求解。将被除数(dividend)与除数(divisor)不断作差,直至被除数小于除数。除法结果用long型数据保存,以避免溢出。每次作差之后被除数翻倍,以提高作差效率,以避免超时。Java代码实现:package com.peng.leetcode;/** * 不使用乘法、除法和mod运原创 2021-10-10 14:55:36 · 199 阅读 · 0 评论 -
01背包问题的两种解法
引言“01背包问题”是一个比较基础的算法问题,它可以衍生为其他相对复杂的算法问题,比如“装箱问题”。通过对“01背包问题”的学习与破解,我们可以掌握一些比较常见的算法,配养一定的算法思维以及解题能力。“01背包问题”是学习计算机相关专业的学生必须掌握的经典算法问题之一。1、“01背包问题”的问题雏形01背包是在M件物品取出若干件放在空间为W的背包里,每件物品的体积为W1,W2至Wn,与之相对应的价值为P1,P2至Pn。01背包是背包问题中最简单的问题。01背包的约束条件是给定几种物品,每种物品有且原创 2021-05-07 20:50:55 · 4016 阅读 · 0 评论 -
我的算法日志:排序算法之快速排序
快速排序(Quicksort)是对冒泡排序的一种改进,由C. A. R.Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。以6、1、7、9、3、8、2、10、3、7这10个数为例,首先要在这个序列...原创 2020-04-18 22:18:28 · 189 阅读 · 0 评论 -
我的算法日志:排序算法之冒泡排序
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。冒泡排序的基本原理是:每一趟只将一个数归位。若要将n个元素排序,至少需要进行n-1趟操作。以将12、35、99、18、76这5个数按照从小到大的循序进行排序为例:第1趟操作:将最大的数归位,...原创 2020-04-18 01:01:24 · 172 阅读 · 0 评论 -
算法:桶排序(简易版)
Question: 班上有5个同学参加考试(满分是10分),分别考了5分、3分、5分、2分和8分,请写一段程序将将分数从大到小进行排序。思路:申请一个一维数组来存放得分情况(得1分的有几个人,得2分的有几个人……),然后根据得分情况输出信息。因为满分是10分,所以我们要申请一个容量为11的数组arr。因为第一个人是5分,所以arr[5]=1;第二个人是3分,故arr[3]=1;第三个人是5分,...原创 2020-04-16 23:55:48 · 197 阅读 · 0 评论