![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
jiutianmuzi
开心是一种能力!
展开
-
受标签影响的最大值
我们有一个 n 项的集合。给出两个整数数组 values 和 labels ,第 i 个元素的值和标签分别是 values[i] 和 labels[i]。还会给出两个整数 numWanted 和 useLimit。输入:values = [5,4,3,2,1], labels = [1,1,2,2,3], numWanted = 3, useLimit = 1。解释:选出的子集是第一项,第三项和第五项。返回子集 s 的最大 分数。原创 2023-06-21 15:21:52 · 88 阅读 · 0 评论 -
华为od机试-优秀学员统计
员工编号范围为0~10,id为10的员工连续打卡30天,排第一,id为0,1,6,7的员工打卡都是两天,id为0,1,7的员工在第一天就打卡,比id为6的员工早,排在前面,0,1,7按id升序排列,所以输出[10,0,1,7,6]加入打卡次数相同,将较早参与打卡的员工排在前面,如果开始参与打卡的时间还是一样,将id较小的员工排在前面。注:不考虑并列的情况,按规则返回前5名员工的id即可,如果当月打卡的员工少于5人,按规则排序返回所有有打卡记录的员工id.之后30行为每天打卡的员工id集合,id不会重复。原创 2023-05-03 20:15:12 · 223 阅读 · 0 评论 -
华为OD机试-箱子之字形摆放-通过所有用例
要求将一批箱子按从上到下以‘之’字形的顺序摆放在宽度为n的空地上,输出箱子的摆放位置,例如:箱子ABCDEFG,空地宽为3,摆放效果如下图:原创 2023-05-21 14:01:12 · 144 阅读 · 0 评论 -
字符串数组中的最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。原创 2023-05-21 12:52:36 · 142 阅读 · 1 评论 -
合并两个有序链表java版
【代码】合并两个有序链表java版。原创 2023-05-21 12:33:12 · 141 阅读 · 0 评论 -
马踏棋盘-回溯法
回溯是一个算法模式,通过尝试不同的解决方案直到找到一个可行的解决方案。用回溯法解决的问题有下列共同特征:该类问题只能通过尝试每一种可能来解决且每一种可能只尝试一次。这类问题的朴素解决方法是尝试每一种可能然后输出满足给定问题约束的一种可能,而回溯法是以渐进的方式运行相比朴素解法是一种优化,因为朴素解法生成了所有可能并尝试。马踏棋盘问题:在一个8*8的棋盘上,马走日字,如何走才能走过每一个位置且每个位置只走一次。package com.lixusheng.study.Backtracking;publi原创 2020-09-19 00:11:42 · 301 阅读 · 0 评论 -
图的广度优先遍历
图的bfs和树的bfs类似。与树不同图可能包含环,所以可能再次访问同一顶点。为了避免访问同一顶点多次,我们用一个布尔数组标志顶点是否被访问过。为了简化,我们假定从起始顶点可达所有顶点。如下图,我们从顶点2开始遍历。当我们遍历到顶点0,查找他的所有相邻顶点。2也是0的一个相邻顶点。如果不标记访问过得顶点,那么顶点2将被再次处理,遍历将变得不可终止。下图的广度优先遍历的结果为2,0,3,1。下面是广度优先遍历的一个简单实现。图用邻接表表示。List用来存储相邻节点,广度优先遍历需要一个队列。packag原创 2020-09-14 00:27:01 · 827 阅读 · 0 评论 -
跳台阶(递推代替递归)
问题一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)思路当n为1时,有一种跳法;当n为2时,有两种跳法:1. 直接跳2级。2. 跳1级再跳1级。当n为3时,第三级要么是从第1级跳到要么是从第2级跳到,所以3级台阶的跳法f(3)就等=f于2级台阶的跳法法f(2)加上1级台阶的跳法f(1)(加法原理) 即 f(3)=f(2)...原创 2018-09-26 18:54:29 · 324 阅读 · 0 评论 -
26进制
问题在Excel 2003中,用A表示第1列,B表示第2列……Z表示第26列,AA表示第27列,AB表示第28列……以此类推。请写一个函数,输入用字母表示的列号编码,输出它是第几列。.思路这是一道关于进制的题目,其本质是把十进制数字用A~Z表示成二十六进制code#include<stdio.h>#include<math.h>#define ...原创 2018-03-28 08:12:43 · 1233 阅读 · 0 评论 -
快速排序(C语言)
算法介绍设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。具体过程设置两个变量i、j,排序开始的时候:i=0,j=N-1以第一个数组元...原创 2018-03-22 19:08:39 · 219 阅读 · 0 评论