算法学习
文章平均质量分 83
收集也是整理
abcccccccccccccccode
写博客的目的是自我整理和提升!
展开
-
常用工具——对数器
在写出一个算法程序的时候,我们往往无法通过手动输入各种各样的测试数据来验证,在OJ平台上也无法找到对应的题目来进行验证。在一些样本量很大的情况下,我们往往无法考虑到所有的边界情况。一些贪心算法是很难通过数学的方式来进行验证的,这时我们应该如何判断算法程序是否正确。在这种情况的时候,我们就需要用到对数器了!有一个你想要测的方法a;实现一个绝对正确但是复杂度不好的方法b;实现一个随机样本产生器;实现对比算法a和b的方法;把方法a和方法b比对多次来验证方法a是否正确;.........原创 2022-09-01 07:31:55 · 1420 阅读 · 4 评论 -
巧用异或运算
大多数人认为异或运算只是数学上的概念,在程序编写方面只不过是两个符号而已。在关于算法上面就会懒得去练习异或,看见相关题目课程也会选择性的跳过,其实这只是因为你并不了解异或真正的作用,当然你也就不会知道它真正的用法。接下面由本篇文章,带你了解异或以及它的用法!这些题目都是在面试中经常出现的相关题目,大家务必进行仔细揣摩,力求掌握!原创 2022-10-04 10:33:30 · 1483 阅读 · 2 评论 -
【Leetcode】第 71 场双周赛
前言目录前言5984. 拆分数位后四位数字的最小和题目展示题意解读解题思路代码实现执行结果5985. 根据给定数字划分数组题目展示题意解读解题思路代码实现执行结果5986. 设置时间的最少代价题目展示题意解读解题思路代码实现执行结果题标题目展示题意解读解题思路代码实现执行结果结语5984. 拆分数位后四位数字的最小和题目展示题意解读这个题意很简单,就是给你一个四位整数,然后让你把这个四位整数拆分为两个数字,对数位没有要求,最后要求返回组成的这个数字的最小和。解题思路首先要想要数字和最小那么我原创 2022-02-08 09:31:01 · 2718 阅读 · 3 评论 -
【Leetcode】第 278 场周赛
前言第 278 场周赛是Leetcode上2021年最后一场周赛,也是我第一次参加的周赛,第一道题秒了,然后可能是自己肚子疼吧,第二题写完一直有bug,死活找不出来,一直被卡住。直到比赛结束后,吃完午饭,一下子就找到了bug,最后属实是把自己气笑了。以后尽量每场周赛都会参加的,再接再厉,2022加油!目录前言5993. 将找到的值乘以 2题目展示题意解读解题思路代码实现执行结果5981. 分组得分最高的所有下标题目展示题目解读解题思路代码实现执行结果结语5993. 将找到的值乘以 2第 278 场原创 2022-02-01 16:34:00 · 2807 阅读 · 0 评论 -
最长定差子序列——动态规划
给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列中相邻元素之间的差等于difference 。子序列是指在不改变其余元素顺序的情况下,通过删除一些元素或不删除任何元素而从 arr 派生出来的序列。示例 1:输入:arr = [1,2,3,4], difference = 1输出:4解释:最长的等差子序列是 [1,2,3,4]。示例 2:输入:arr = [1,3,5,7], difference = 1输出:1解释:最.原创 2021-12-05 09:50:51 · 2802 阅读 · 0 评论 -
返回倒数第k个结点——双指针
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。注意:本题相对原题稍作改动示例:输入: 1->2->3->4->5 和 k = 2输出: 4说明:给定的 k 保证是有效的。这个题是非常简单的,大家看到题目可以先自己想想怎么做,然后再看题解!这题其实是非常经典的用快慢指针解决的问题,大概思路是: 快指针先走k步,然后快慢指针同时往前走,直到快指针到结尾的时候,返回慢指针节点的值。看代码实现:/** * Definition for singly-原创 2021-11-26 22:55:31 · 2755 阅读 · 18 评论 -
【贪心算法】买电影票
前言这是我的某一门作业题,发出来是对自己的整理,请不要直接搬了,最多给大家提供一个思路而已,肯定还有更优解法。大家可以去探索探索。其次文章尾部有投票彩蛋,大家可以先去看看(手动狗头)!正文n 个人去看电影,本来每人要买一张票,但电影院推出了一个活动:一个身高为 x 的人可以和身高至少为 2x 组合,两人一共只需买一张票。现在给出全体 n个人的身高,请问总共至少要买多少电影票?输入格式第一行一个整数 n,代表总人数。第二行 n 个整数,每个数 A[i]代表每个人的身高。输出格式一个整数,表示原创 2021-11-23 03:30:00 · 3703 阅读 · 0 评论 -
【Leetcode】经典排序算法
题目描述: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 N个 1 到 1000 之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入描述第 1 行为 1 个正整数,表示所生成的随机数的个数:NN。第 2 行有 NN 个用空格隔开的正整数,为所产生的随机数。输出描述输出 2 行,第 1 行为 1.原创 2021-11-25 23:17:20 · 2604 阅读 · 0 评论 -
【Leetcode】二分法查找
二分法查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1提示:你可以假设原创 2021-11-18 00:52:15 · 2353 阅读 · 19 评论