- 浏览: 42006 次
- 性别:
- 来自: 海南
最新评论
-
filson110:
赞
包含癞子的麻将胡牌算法 -
xingbinice:
记录一下有bug的版本:majiang.isPu = func ...
包含癞子的麻将胡牌算法 -
八千里山河:
你好,您的斗地主源码写的非常棒!可以跟您沟通学习下吗?
写个单机版斗地主程序,复习c++面向对象 -
njliukang:
要是把程序代码附带一下,有个参照,就更好了
伪码记录一些重要算法的思路(持续整理)
文章列表
比赛地址:
https://leetcode-cn.com/contest/weekly-contest-106
922. 按奇偶排序数组 II
922. Sort Array By Parity II
给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。
对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 ...
比赛地址:
https://lingkou.com/contest/weekly-contest-102
905. 按奇偶校验排序数组
905. Sort Array By Parity
给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
示例:
输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。
比赛地址:
https://leetcode-cn.com/contest/weekly-contest-100
896. 单调数列
896. Monotonic Array
如果数组是单调递增或单调递减的,那么它是单调的。
如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组
比赛地址:
https://leetcode-cn.com/contest/weekly-contest-98
888. 公平的糖果交换
888. Fair Candy Swap
爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 块糖的大小,B[j] 是鲍勃拥有的第 j 块糖的大小。
因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)
返回一个整数数组
比赛地址:
https://leetcode-cn.com/contest/weekly-contest-97
888. 两句话中的不常见单词
888. Uncommon Words from Two Sentences
给定两个句子 A 和 B 。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)
如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。
返回所有不常用单词的列表。
您可以按任何顺序返回列表。
示例 1:
比赛地址:
https://leetcode-cn.com/contest/weekly-contest-96
887. Projection Area of 3D Shapes
887. 三维形体投影面积
在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体。
每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上。
现在,我们查看这些立方体在 xy、yz 和 zx 平面
比赛地址
https://leetcode-cn.com/contest/weekly-contest-95
876. Middle of the Linked List
876. 链表的中间结点
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
示例 1:
输入:[1,2,3,4,5]
输出:此列表中的结点 3 (序列化形式:[3,4,5])
返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。
注意,我们返回了一个 ListNode 类型的对象 ans,这样:
ans.va ...
比赛地址
https://leetcode-cn.com/contest/weekly-contest-94
872. Leaf-Similar Trees
考虑一个二叉树的所有叶子。这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。
举个例子,给定一个如上图所示的树,其叶值序列为 (6, 7, 4, 9, 8) 。
如果两个二叉树的叶值序列相同,我们就认为它们是 叶相似的。
如果给定的两个头结点分别为 root1 和
比赛地址
https://leetcode-cn.com/contest/weekly-contest-93
868. 二进制间距
给定一个正整数 N,找到并返回 N 的二进制表示中两个连续的 1 之间的最长距离。
如果没有两个连续的 1,返回 0 。
示例 1:
输入:22
输出:2
解释:
22 的二进制是 0b10110 。
在 22 的二进制表示中,有三个 1,组成两对连续的 1 。
第一对连续的 1 中,两个 1 之间的距离为 2 。
第二对连续的 1 中,两个 1 之间的距离为 1 。
答案取两个距离之中最大的,也就是 2 。
比赛地址
https://leetcode.com/contest/weekly-contest-89
852. Peak Index in a Mountain Array
我们把符合下列属性的数组 A 称作山脉:
A.length >= 3
存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]
给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < ... A ...
比赛地址https://leetcode.com/contest/weekly-contest-83
830. Positions of Large Groups
In a string S of lowercase letters, these letters form consecutive groups of the same character.
For example, a string like S = "abbxxxxzyy" has the groups "a", "bb", "xxxx" ...
比赛地址https://leetcode.com/contest/weekly-contest-82
824. Goat Latin
A sentence S is given, composed of words separated by spaces. Each word consists of lowercase and uppercase letters only.
We would like to convert the sentence to "Goat Latin" (a made-up language similar to Pig L ...
leetCode周赛81解题报告
- 博客分类:
- 算法 思路
比赛地址https://leetcode.com/contest/weekly-contest-81
821. Shortest Distance to a Character
Given a string S and a character C, return an array of integers representing the shortest distance from the character C in the string.
Example 1:
Input: S = "loveleetcode", C = 'e'
Output: [3, ...
记录一下麻将的通用胡牌算法实现,只要满足M x ABC + N x DDD + EE 即可胡牌。
在这里先分析一下最简单的胡牌思路:先找出所有可能的将牌,若除去两张将牌之外的所有牌都能成扑,则可胡牌。
将牌就是公式里唯一的对子EE、扑的意思是一套牌顺子ABC或者刻子DDD。
将牌的查找:遍历每张手牌,若有两张以上相同牌就能作将,或者用一张癞子凑也可。
接下来就只要判断一副牌是否成扑,伪码如下:
function isPu = (牌) { // 这里约定传入的牌是有序的、张数是3的倍数
if (没牌) {
return true;
}
...
基于内容精简、重点突出、便于理解的这些优点,选择中文伪码来记录。
一般地,left、right分别表示待操作数组的起止索引,或是链表的头尾指针。
_______________________________________________