iOS面试中常见的算法题目

时间:2022-09-25 08:10:29

一、前言

  这里是在iOS求职中自己遇到的算法题,希望对大家有所帮助。不定期更新。如果大家想在线运行代码调试,可以将代码拷贝到这里。然后进行调试。下面就是常见的算法题目。

二、正文

1、就n的阶乘。(这里只是用于小数,大数会越界)

思路:这里面用递归实现

#include <stdio.h>

int getNJ(int n) {
     || n==) {
        ;
    }
    );
}
int main() { 

   printf());
    ;
}

运行结果如下:


2、判断一个字符串是否是ip。

思路:先将字符串分割到两个数组里面(一个数字数组,一个字符数组),然后判断数字数组内容是否满足ip条件,字符数组里面是否是"."。这里面主要用了sscanf函数。代码如下:

#include <stdio.h>

int checkIP(const char *p) {
    ];
    ];
    ],&c[],&n[],&c[],&n[],&c[],&n[],&c[])==) {
        int i;
        ;i<;i++) {
            if(c[i]!='.') {
                ;
            }
        }
        ;i<;i++) {
            ||n[i]<) {
                ;
            }
        }
        ;

    }else {
        ;
    }
}

int main() {
    const char *x[] =
    {
        "132.168.1.1",
        "10.0.0.1.",
        "127.256.0.1",
        "iudfdsfdasfdaf",
        "172.16,2.1"
    };
    const char *m[] =
    {
        "不是合法的IP地址",
         "是合法的IP地址"
    };
    ;
    ) {
        printf("%s %s\n",x[i],m[checkIP(x[i])]);
        i++;
    }
    ;
    ;
}

运行结果如下:

132.168.1.1 是合法的IP地址
10.0.0.1. 不是合法的IP地址
127.256.0.1 不是合法的IP地址
iudfdsfdasfdaf 不是合法的IP地址
172.16,2.1 不是合法的IP地址

3、二分查找

思路:二分查找又称折半查找,前提是待查找表为有序表。将查找目标与数组中间的数对比,如果大于中间的数就在中间数和最大数之间查找,如果小于中间数就在小数和中间数之间查找。

#include <stdio.h>

int bsearchMethod(int arr[],int low,int high,int target) {
    while (low<high) {
        ;
        if (arr[mid]>target) {
            high = mid-;
        }else if(arr[mid]<target){
            low = mid+;
        }else {
            return mid;
        }
    }
    ;
}
int main(void) {
    ,,,,,,,,,,};
    printf(,,));
    ;
}

运行结果为:

查找数在数组第5位

其中-1为查找失败

4、100层楼2个鸡蛋问题?

5、字符串反转输出问题?

6、红黑树?

7、河左边有:狼、羊、白菜,一个人过河,一次只能带走一件东西,怎么做能够保证三物都到河右边?规则(狼吃羊、羊吃白菜)

答:先把羊带到对面,然后把白菜带到对面,这个时候把羊带走,把狼带回对面,回去再把羊带回对面。

8、有一张圆形的桌子,两个人轮流往桌子上放硬币,假设两人有无限多的大小相同的硬币且不考虑桌子的大小,规定硬币之间不可以重叠,但可以相互碰着边,谁最后一个放硬币谁就赢,问谁会赢,第一给放硬币的人还是第二个?(更新时间:2016年10月18日)

答:第一个出的赢,但是第一个首先的做法是:把第一个放在中心,然后当第二个人出的时候,第一个人就对称着放硬币,第一个人就赢了。

iOS面试中常见的算法题目的更多相关文章

  1. 面试中常见的算法之Java中的递归

    1.方法定义中调用方法本身的现象2.递归注意实现 1) 要有出口,否则就是死递归 2) 次数不能太多,否则就内存溢出 3) 构造方法不能递归使用3.递归解决问题的思想和图解: 分解和合并[先分解后合并 ...

  2. iOS项目中常见的文件

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  3. iOS开发中常见的一些异常

    iOS开发中常见的异常包括以下几种NSInvalidArgumentExceptionNSRangeExceptionNSGenericExceptionNSInternallnconsistency ...

  4. 面试中常用排序算法的python实现和性能分析

    这篇是关于排序的,把常见的排序算法和面试中经常提到的一些问题整理了一下.这里面大概有3个需要提到的问题: 虽然专业是数学,但是自己还是比较讨厌繁琐的公式,所以基本上文章所有的逻辑,我都尽可能的用大白话 ...

  5. iOS 开发中常见的设计模式

    最近有小伙伴问到在iOS开发中的几种设计模式,这里摘录一下别人的总结(因为已经感觉总结得差不多了,适用的可以阅读一下) 首先是开发中的23中设计模式分为三大类:1.创建型 2.结构型 3.行为型 (i ...

  6. JavaScript 面试中常见算法问题详解

    1.阐述下 JavaScript 中的变量提升 所谓提升,顾名思义即是 JavaScript 会将所有的声明提升到当前作用域的顶部.这也就意味着我们可以在某个变量声明前就使用该变量,不过虽然 Java ...

  7. Java面试题整理:这些Java程序员面试中经常遇见的题目,必须掌握才能有好结果

    1.是否可以从一个static方法内部发出对非static方法的调用? 不可以.因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时 ...

  8. iOS开发中常见的语句&commat;synthesize obj &equals; &lowbar;obj 的意义详解

    我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesize window=_window; 的语句,那么,这个window是什么,_ window又是什么,两个东西分别怎么用,这是一 ...

  9. iOS开发中常见的语句&commat;synthesize obj&equals;obj的意义详解

    我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesize window=_window; 的语句,那么,这个window是什么,_ window又是什么,两个东西分别怎么用,这是一 ...

随机推荐

  1. 调用天气Api实现天气查询

    上面是简单截图: 前台代码: @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name=&qu ...

  2. (转)word2vec前世今生

    word2vec 前世今生 2013年,Google开源了一款用于词向量计算的工具——word2vec,引起了工业界和学术界的关注.首先,word2vec可以在百万数量级的词典和上亿的数据集上进行高效 ...

  3. Eclipse rap 富客户端开发总结&lpar;15&rpar; :rap如何使用js

    1. 把输入的字符串当 javascript 执行 try { RWT.getResponse().getWriter().println("alert('123');"); }  ...

  4. expect实现scp&sol;ssh-copy-id非交互

    expect工具可以实现自动应答,从而达到非交互的目的. expect具体使用用法比较复杂,中文手册我正在翻译中,以后翻译完了做了整理再补.本文只有几个ssh相关最可能用上的示例. yum -y in ...

  5. JSR-303 数据校验学习

    一.JSR-303简介JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator. 此实现与 Hibernate ...

  6. MongoDB 那些坑&lpar;转&rpar;

    MongoDB 是目前炙手可热的 NoSQL 文档型数据库,它提供的一些特性很棒:如自动 failover 机制,自动 sharding,无模式 schemaless,大部分情况下性能也很棒.但是薄荷 ...

  7. 微软BI 之SSAS 系列 - 基于雪花模型的维度设计

    基于雪花模型的维度以下面的 Product 产品与产品子类别,产品类别为例. DimProduct 表和 DimProductSubcategory 表有外键关系,而 DimProductSubcat ...

  8. Linux 帐户管理

    一 用户相关操作 1. 添加帐户 useradd 选项 用户名 -c comment 指定一段注释性描述. -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录. -g 用 ...

  9. 爬虫实战&lpar;二&rpar; 51job移动端数据采集

        在上一篇51job职位信息的爬取中,对岗位信息div下各式各样杂乱的标签,简单的Xpath效果不佳,加上string()函数后,也不尽如人意.因此这次我们跳过桌面web端,选择移动端进行爬取. ...

  10. maven 配置 Java Servlet API

    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency> ...