美文网首页
简单算法题

简单算法题

作者: 楼上那只猫 | 来源:发表于2020-01-29 18:27 被阅读0次

斐波那契数列

int fibe(int n) {
    if (n == 1 || n == 2) {
        return 1;
    } else {
        return fibe(n -1) + fibe(n - 2);
    }
}

判断一个数是否是质数(只能被1和本身整除)

int isPrime(int num) {
    for (int i = 2; i < num - 1; i++) {
        if (num % i == 0) {
            return 0;
        }
    }
    return 1;
}

判断是否是丑数
丑数就是只包含质因数 2, 3, 5 的正整数

int isUgly(int num) {
    if (num == 0) {
        return -1;
    } else if(num == 1) {
        return 1;
    } else {
        while (num % 2 == 0) {
            num /= 2;
        }
        while (num % 3 == 0) {
            num /= 3;
        }
        while (num % 5 == 0) {
            num /= 5;
        }
        if (num == 1) {
            return 1;
        }
        return -1;
    }
}

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素.
这里使用了异或运算符(^),该运算符的特性如下:假设有值甲、乙,当甲乙值相等时,异或操作后结果为不等(False,0),反之,为相等(True,1)。

按位异或操作的性质:一个值和0进行按位异或操作所得为该值,相同的两个值进行异或操作,所得为0(甲 按位异或 0 得 甲,甲 按位异或 甲 得 0)

由此可以知道,对于数组中重复的元素,进行异或操作后最终为0,那么,剩余的一个只出现一次的元素进行异或,得到的就是该元素。

int singleNumber(int* nums, int numsSize) {
    int res = 0;
    for (int i = 0; i < numsSize; i++) {
        res = res ^ nums[i];
    }
    return res;
}

众数
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
解法主要是用到了摩尔投票

int majorityElement(int* nums, int numsSize){
    int res = 0;
    int count = 0;
    for (int i = 0; i < numsSize; i++) {
        if (count == 0) {
            res = nums[i];
            count = 1;
        } else {
            if (res == nums[i]) {
                count++;
            } else {
                count--;
            }
        }
    }
    return res;
}

相关文章

  • 面试题高频算法题整理

    以下算法题几乎都是简单题,都为面试算法题值得刷的题,需要理解并记住解题思路,而其中★标注的题,更是面试算法题中的高...

  • 简单算法题

    斐波那契数列 判断一个数是否是质数(只能被1和本身整除) 判断是否是丑数丑数就是只包含质因数 2, 3, 5 的正...

  • 算法-链表之简单算法题

    上一阶段的字符串系列之后很长时间都没有更新文章,现在接着来,本阶段是链表系列的,链表系列的算法题我不会再用大量篇幅...

  • 算法题总结day1

    今天开始从简单的开始总结一些简单的算法题。我按照leetcode interview的题从简单到困难排序,依次选取...

  • 2019-03-31

    本周学习简单总结 请一定在今天完成LeetCode全部算法题目 Leetcode算法题: 树: 递归:https:...

  • 算法题有多重要 | 来看看Android-Flutter面试亲历

    这两周面试遇到的算法题,都是需要手写实现,本人算法相当菜,面试之前也没刷题的概念,所以算法答的很不好,下面只简单说...

  • python简单算法题(二)

    1)求一个矩阵的转置 matrix_before = [[1, 4], [2, 5], [3, 6]] matri...

  • python简单算法题(一)

    1)只能输入整数,并生成列表,实现最大数,将列表从小到大排序。 # define a funtion which ...

  • 树的简单算法题

    二叉树插入 有序数组创建二叉树 遍历二叉树 algorithms/ 前序 根左右 中序 左根右 后序 左右根 递归...

  • 算法-链表之简单算法题(续)

    本来以为一篇就能写完的,后来又感觉一篇多了一些,所以关于链表的简单算法题有加了个续篇,和上一篇一样,难度不会太大。...

网友评论

      本文标题:简单算法题

      本文链接:https://www.haomeiwen.com/subject/rvhmthtx.html