https://leetcode-cn.com/problems/keyboard-row
给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘就是你的键盘那样,自己看看。
示例:
输入: ["Hello", "Alaska", "Dad", "Peace"]
输出: ["Alaska", "Dad"]
a1 a2 a3
检查每个单词第一个字符在 aX 里:
检查 每个单词2到最后的字符,在aX里面不
是则 留下
否则 不留下
最后打印出来 留下的 所有单词
c
py
https://leetcode-cn.com/problems/sort-array-by-parity
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
排序,需要循环,判断比较,交换。本题对排序算法的排序条件的掌握,将常规排序条件从比大小变为判断奇偶。
https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree
给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
例如,给定一个 3叉树 :
1
/ | 3 2 4
/ 5 6
我们应返回其最大深度,3。
说明:
树的深度不会超过 1000。
树的节点总不会超过 5000。
第一种想法是DFS递归写法求N叉树的深度。第二种想法是层序遍历N叉树求N叉树深度。
https://leetcode-cn.com/problems/intersection-of-two-arrays
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
说明:
输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。
set api in java or py or c++ ; no c solution?
#include <stdlib.h>
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){
if(nums1Size==0 || nums2Size==0){
*returnSize = 0;
return 0;
}
int max = (nums1Size>nums2Size) ? nums1Size : nums2Size;
int* bot = (int*)malloc(sizeof(int)*max);
int i, j, k = 0, u, z = 1;
for(i = 0; i < nums1Size; i++){
for(j = 0; j < nums2Size; j++)
if(nums1[i]==nums2[j]){
bot[k++] = nums1[i];
continue;
}
}
if(k==0){
*returnSize = 0;
return 0;
}
// 对u排序
qsort(bot,k,sizeof(bot[0]),cmp);
for(u = 1; u < k; u++){
if(bot[z-1]==bot[u]) continue;
else bot[z++] = bot[u];
}
*returnSize = z;
return bot;
}
作者:logan-31
链接:https://leetcode-cn.com/problems/intersection-of-two-arrays/solution/cyu-yan-jian-bian-suan-fa-by-logan-31/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。原文:https://www.cnblogs.com/paulkg12/p/12286509.html