精华内容
下载资源
问答
  • 这是一个Matrix.org ,它使用插入服务器的USB 3G调制解调器将SMS消息桥接到Matrix。 最重要的是,它仅适用于一个用户-显然,如果你只有一个3G调制解调器,它并没有真正意义的支持多于一个用户... 我需要运行什么? ...
  • 1、需求 更具UI的设计实现扫描二维码和识别本地图片二维码功能。 zxing扫描二维码还可以,但是识别本地图片二维码功能效果太差,非常不理想,看了看多github很多zxing扩展的开源项目,识别本地图片...但是华为SD

    1、需求

    更具UI的设计实现扫描二维码和识别本地图片二维码功能。

    • zxing扫描二维码还可以,但是识别本地图片二维码功能效果太差,非常不理想,看了看多github很多zxing扩展的开源项目,识别本地图片二维码功能效果不乐观,有些甚至还有裁剪本地图片,还是不能识别,果断放弃
    • zbar扫描二维码还可以,但是识别本地图片二维码功能效果太差,而且还有so这些东西需要集成,所以太麻烦,效果也不怎么样,果断放弃
    • 最后采用华为扫描的SDK,扫描二维码非常好,而且识别本地图片二维码功能效果也非常敏感

    但是华为SDK里面有几种模式,如果直接用集成好的华为activity,就达不到UI设计的效果,所以我们需要界面是自己写的界面,然后功能用华为SDK的就可以。 

     

     

     

     

     

     

     

     

     

    2、效果爆照

     

     

     

     

     

     

     

     

    3、简单集成介绍

    1)、华为官网的资料地址和Demo</

    展开全文
  • 应用性能监控和性能优化一直是老生常谈的话题,很多大厂都有专门的团队在做,腾讯就做了一款性能监控的框架matrix,且已经开源,对于个人而言,这是一次绝佳的学习机会,像如何做到启动耗时的计算,就要去了解App的...

    背景

    应用性能监控和性能优化一直是老生常谈的话题,很多大厂都有专门的团队在做,腾讯就做了一款性能监控的框架matrix,且已经开源,对于个人而言,这是一次绝佳的学习机会,像如何做到启动耗时的计算,就要去了解App的启动过程,系统函数如何被调用,被调用的顺序又是什么等等吧,这次内容即将从matrix框架的各个方面进行一一展开,弄清楚到底是怎么监控的,且深入到代码的实现来看清本质。对于公司而言,这也是公司搭建线上性能监控平台过程中,打下了坚实且稳定的基础,虽然市面上已经有toB的APM性能监控平台,毕竟是收费的嘛,当然还考虑到如果花了钱还不满意,那岂不是得不偿失,所以不如自己做,毕竟我们做技术的,喜欢确定性,喜欢稳定的接口,而不是不断变化的不确定性。

    APM简介

    APM全称(Application Performance Management)应用性能管理,从整个开发流程来看APM,如图是我们开发的大致流程
    在开发阶段,我使用各种工具或者第三方SDK来监控内存泄漏如LeakCanary,还有我们熟悉的TrackView耗时分析工具,在编译阶段,通过Gradle代码插桩可以统一实现埋点等功能,当然也可以通过代码插桩做函数的耗时统计。测试阶段应该也有体现,这我没有想好,跳过,在灰度发布阶段我们收集到了数据后,做统计,统计出需要优化的方方面面,最终交给开发做优化。可见APM在整个开发过程中举足轻重。

    为什么大厂都有APM平台

    • 当然最主要的原因是我们要交付高质量的应用,需要一些手段来提高应用质量,那么APM就提供了一系列的方式方法来高效的捕捉问题,最终解决问题,提高体验。
    • 团队规模变大,越来越多的组织都需要做性能监控,这个团队做了个内存分析监控,那个团队做了个启动耗时监控,那么也是为了统一技术栈,减少其他团队的学习和研究成本,那么统一出一个APM性能监控平台,就显得异常重要,有句老话说的好,闻道有先后,术业有专攻,专业的团队干专业的事儿,这也是统一出APM的另一个原因

    APM性能监控的指标

    首先我们来看下性能指标,或者叫用户体验标准,大家都在讲性能监控,都在做性能优化,那么什么样子的数据才是合格的呢?详细请看如下链接:软件绿色联盟应用体验标准3.0——性能标准

    image.png

    截取一张图,大家感受一下,这是冷启动的标准,一般应用类要求在2000毫秒一下,要求感觉很宽松啊,一秒内启动我认为更加合理一些,当然这是大部分的标准,他们给我们提供了性能优化的依据,提供有力的支持。另一方面我们也能从中找到需要监控的模块。还不错,如果有需要深入研究,请移步链接查看详情。
    绿色联盟官版: 软件绿色联盟应用体验标准3.0——性能标准
    华为解读版本: 《软件绿色联盟应用体验标准3.0》关键信息和华为解读
    有了这些标准,也有助于我们的判断力,什么是好,什么是不好,清晰明了。下面进入我们这次分析的核心Matrix。

    Matrix 简介

    了解了APM之后,接下来看一下APM具体实现之一Matrix的介绍:Matrix 是一款微信研发并日常使用的应用性能接入框架,支持iOS, macOS和Android。 Matrix 通过接入各种性能监控方案,对性能监控项的异常数据进行采集和分析,输出相应的问题分析、定位与优化建议,从而帮助开发者开发出更高质量的应用。
    针对Android系统:Matrix-android 监控范围包括:应用安装包大小,帧率变化,启动耗时,卡顿,慢方法,SQLite 操作优化,文件读写,内存泄漏等等。
    从官方文档来看,**Matrix-android 几乎涵盖了所有的性能指标检测功能,目前主要是分了五大模块,如下图所示:

    image
    • APK Checker: 针对 APK 安装包的分析检测工具,根据一系列设定好的规则,检测 APK 是否存在特定的问题,并输出较为详细的检测结果报告,用于分析排查问题以及版本追踪
    • Resource Canary: 基于 WeakReference 的特性和 Square Haha 库开发的 Activity 泄漏和 Bitmap 重复创建检测工具
    • Trace Canary: 监控界面流畅性、启动耗时、页面切换耗时、慢函数及卡顿等问题
    • SQLite Lint: 按官方最佳实践自动化检测 SQLite 语句的使用质量
    • IO Canary: 检测文件 IO 问题,包括:文件 IO 监控和 Closeable Leak 监控

    框架特性

    与常规的 APM 工具相比,Matrix 拥有以下特点:

    APK Checker

    • 具有更好的可用性:JAR 包方式提供,更方便应用到持续集成系统中,从而追踪和对比每个 APK 版本之间的变化
    • 更多的检查分析功能:除具备 APKAnalyzer 的功能外,还支持统计 APK 中包含的 R 类、检查是否有多个动态库静态链接了 STL 、搜索 APK 中包含的无用资源,以及支持自定义检查规则等
    • 输出的检查结果更加详实:支持可视化的 HTML 格式,便于分析处理的 JSON ,自定义输出等等

    Resource Canary

    • 分离了检测和分析部分,便于在不打断自动化测试的前提下持续输出分析后的检测结果
    • 对检测部分生成的 Hprof 文件进行了裁剪,移除了大部分无用数据,降低了传输 Hprof 文件的开销
    • 增加了重复 Bitmap 对象检测,方便通过减少冗余 Bitmap 数量,降低内存消耗

    Trace Canary

    • 编译期动态修改字节码, 高性能记录执行耗时与调用堆栈
    • 准确的定位到发生卡顿的函数,提供执行堆栈、执行耗时、执行次数等信息,帮助快速解决卡顿问题
    • 自动涵盖卡顿、启动耗时、页面切换、慢函数检测等多个流畅性指标

    SQLite Lint

    • 接入简单,代码无侵入
    • 数据量无关,开发、测试阶段即可发现SQLite性能隐患
    • 检测算法基于最佳实践,高标准把控SQLite质量*
    • 底层是 C++ 实现,支持多平台扩展

    IO Canary

    • 接入简单,代码无侵入
    • 性能、泄漏全面监控,对 IO 质量心中有数
    • 兼容到 Android P

    目的

    此次分析的主要目的是从源码的角度,刨根问底,还原本质,弄清楚所有性能监控的原理,另一方面目的也是我们公司内部准备基于它搭建一个完整的线上性能监控平台,将产生的数据可视化,通过数据的统计和筛选找到最需要做优化的点,这样有利于公司对线上App的把控,间接提高用户体验,同样也能影响到开发者,开发出更高质量的应用。

    分析方法

    • 源码阅读分析

    首先通过对源码的解读,了解实现过程,了解细节处理等。

    • 代码实践

    实践是最好的老师,主要是想到学以致用,我们能否写一个简易版的监控,并通过真实的场景模拟,来辅助我们更加深刻的理解。

    这次分享的系列内容包括

    image

    大致就是以上8大模块,一一做详细的阐述和分析。具体链接如下:

    以上会以单独的一篇内容做分享。每一篇更加注重细节和实践,但仔细想一想,如果一上来就到细节分析,仿佛不利于我们的理解,所以我也准备了框架的整体分析,从整体到局部,从局部到细节,从细节到实践。

    Matrix的框架结构

    image.png

    项目中主要分为三种Lib形式,包括C、Java、Android

    • apk-canary Jar包形式,不牵扯android相关API,对java项目commons有依赖关系。
    • trace-canary 安卓依赖包形式,主要依赖android-lib
    • resource-canary 文件目录,目下三个项目一个基础依赖canary-common 一个android依赖包canary-android,一个canary-analyzer java项目用来分析activity内存泄漏,重复bitmap,堆分析等。
    • io-canary Android包,依赖android-commons android-lib ,分析IO流的泄漏等
    • sqlite-lint-android Android包,依赖的C++模块,代码在同级目录的src中
    • gradle-plugin gradle自定义插件,这里就是我们在项目中需要引用的插件源码,它依赖于arsutil java项目,依赖该插件如下图所示:
    image.png

    整体来看,我没有很详细的介绍每个lib的功能和内容,后续源码解读中会一一提到。

    Matrix的目录结构

    image.png

    结合上面的框架结构图,基本可以不用解释了吧。话不多说,我们再深入一些,看下项目的类结构设计。

    Matrix的类结构

    通过类的结构图,我们可以清晰的看到框架的代码组织结构,请看图:
    我们发现几个点:

    image.png
    • IPlugin 定义了插件的行为,开始,暂停,销毁,初始化,获取tag标志等等。
    • 插件收集的问题通过PluginListener汇集,且依赖了接口,并没有依赖实现类DefaultPluginListener
    • 一共实现了四个插件,Trace、SQLiteLint、Resource、IOCanary。
    • Matrix聚合类通过Builder模式创建,并管理所有插件,如startAllPlugins、stopAllPlugins等等。

    其实并没有大家想象的那么复杂,很简单的实现,并没有什么晦涩难懂之处,其实难的在后面。

    总结

    简单做个回顾,这期内容,从了解背景开始,我们对APM有了一定的理解,并引出Matrix框架,列出了它的功能和特点,最后我们制定了分析的方法和内容,然后从全局的角度看一下Matrix的框架结构设计,以及类的结构设计。这样有利于我们从整体到局部的学习。接下来我们就可以去关注细节,针对每一个插件的功能,接口定义的方法,一个个去翻源码,看下到底是怎么样的实现,才能做到监控的,期待ing。

    展开全文
  • 华为AI开发平台

    千次阅读 2020-03-29 11:23:40
    Mind Studio的是一套基于华为自研昇腾AI处理器开发的AI全栈开发工具平台,包括网络模型移植、应用开发、推理运行及自定义算子开发,通过Mind Studio能够进行工程管理、编译、性能分析等全流程开发,提高开发效率。...

    一、Mind studio

    Mind Studio的是一套基于华为自研昇腾AI处理器开发的AI全栈开发工具平台,包括网络模型移植、应用开发、推理运行及自定义算子开发,通过Mind Studio能够进行工程管理、编译、性能分析等全流程开发,提高开发效率。
    在这里插入图片描述
    模型管理工具-OMG/OME
    在这里插入图片描述
    业务编排工具-Matrix
    在这里插入图片描述
    日志工具
    在这里插入图片描述
    全流程性能分析工具-profiling
    在这里插入图片描述
    比对工具
    在这里插入图片描述

    二、TBE
    TBE(Tensor Boost Engine)提供了昇腾AI处理器自定义算子开发能力,通过TBE提供的API和自定义算子编程开发界面可以完成相应神经网络算子的开发。TBE给用户提供了多层灵活的算子开发方式,用户可以根据对硬件的程度自由选择,利用工具的优化和代码生成能力,生成昇腾AI处理器的高性能可执行算子。
    在这里插入图片描述

    参考:华为云社区

    展开全文
  • 接上篇:Java算法:华为机试算法(上),华为算法Java版,牛客网华为算法1~54题 HJ55 (练习用)挑7 挑7 题目描述 输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的...

    接上篇:Java算法:华为机试算法(上),华为算法Java版,牛客网华为算法1~54题

     

    HJ55 (练习用)挑7

    挑7

    题目描述

    输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数(一组测试用例里可能有多组数据,请注意处理)

    输入描述:

    一个正整数N。(N不大于30000)

    输出描述:

    不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.

    示例1

    输入

    20

    10

    输出

    3

    1

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStreamReader;

    public class Main {

        public static void main(String[] args) throws IOException {

            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

            String input = "";

            while ((input = bufferedReader.readLine()) != null) {

                int count=0;

                int num=Integer.parseInt(input);

                for(int i=7;i<=num;i++){

                    if(i%7==0||contain7(i)){

                        count++;

                    }

                }

                System.out.println(count);

            }

        }

        public static boolean contain7(int n) {

            while (n > 0) {

                if (n % 10 == 7) {

                    return true;

                } else {

                    n /= 10;

                }

            }

            return false;

        }

    }

    HJ56 iNOC产品部--完全数计算

    完全数计算

    题目描述

    完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。

    它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

    例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。s

    输入n,请输出n以内(含n)完全数的个数。计算范围, 0 < n <= 500000

    本题输入含有多组样例。

    输入描述:

    输入一个数字n

    输出描述:

    输出不超过n的完全数的个数

    示例1

    输入

    1000

    7

    100

    输出

    3

    1

    2

    import java.io.*;

     

    public class Main{

        public static void main(String[] args) throws IOException{

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String str = "";

            while((str = br.readLine())!=null){

                System.out.println(conut2(Integer.valueOf(str)));

            }

        }

         

        public static int conut2(int n){

            if(n<6){

                return 0;

            } else if(n<28){

                return 1;

            }else if(n<496){

                return 2;

            } else if(n<8128){

                return 3;

            } else if(n<33550336){

                return 4;

            } else {

                return -1;

            }

        }

         

        public static int count(int n){

            int result = 0;

            for(int i =1;i<n;i++){

                int sum = 0;

                for(int j=1;j<=i/2;j++){

                    if(i%j==0){

                        sum += j;

                    }

                }

                if(sum == i){

                    result ++;

                }

            }

            return result;

        }

    }

    HJ57 无线OSS-高精度整数加法

    高精度整数加法

    题目描述

    输入两个用字符串表示的整数,求它们所表示的数之和。

    字符串的长度不超过10000。

    本题含有多组样例输入。

    输入描述:

    输入两个字符串。保证字符串只含有'0'~'9'字符

    输出描述:

    输出求和后的结果

    示例1

    输入

    9876543210

    1234567890

    输出

    11111111100

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

     

    public class Main {

        public static void main(String[] args) throws Exception {

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String line;

            while ((line = br.readLine()) != null && line.length() > 0) {

                System.out.println(add(line.trim(), br.readLine().trim()));

            }

        }

     

        static String add(String s1, String s2) {

            if (s1.length() == 0 || s2.length() == 0)

                return "";

            boolean neg1 = s1.charAt(0) == '-';

            boolean neg2 = s2.charAt(0) == '-';

     

            if (!(neg1 ^ neg2)) {

                if (s1.length() < s2.length()) {

                    String temp = s1;

                    s1 = s2;

                    s2 = temp;

                }

            } else if (neg1) {

                if (s1.length() < s2.length() + 1) {

                    String temp = s1;

                    s1 = s2;

                    s2 = temp;

                    neg1 = false;

                    neg2 = true;

                }

            } else if (neg2) {

                if (s1.length() + 1 < s2.length()) {

                    String temp = s1;

                    s1 = s2;

                    s2 = temp;

                    neg1 = true;

                    neg2 = false;

                }

            }

     

            int[] lmax = new int[neg1 ? s1.length() - 1 : s1.length()];

            for (int i = neg1 ? 1 : 0; i < lmax.length; ++i)

                lmax[i] = s1.charAt(i) - '0';

            int[] lmin = new int[neg2 ? s2.length() - 1 : s2.length()];

            for (int i = neg2 ? 1 : 0; i < lmin.length; ++i)

                lmin[i] = s2.charAt(i) - '0';

     

            int i = lmax.length - 1, j = lmin.length - 1;

            if (!(neg1 ^ neg2)) {

                int[] carry = new int[1];

                while (j >= 0) {

                    add(lmax, i, lmin[j], carry);

                    --i;

                    --j;

                }

                StringBuilder sb = new StringBuilder();

                if (neg1)

                    sb.append('-');

                if (carry[0] == 1)

                    sb.append(1);

                for (i = 0; i < lmax.length; ++i)

                    sb.append(lmax[i]);

                return sb.toString();

            } else {

                int flag = 0;

                boolean neg = true;

                if (i == j) {

                    flag = -1;

                    for (int k = 0; k <= i; ++k) {

                        if (lmax[k] > lmin[k]) {

                            flag = 0;

                            neg = neg1;

                            break;

                        } else if (lmax[k] < lmin[k]) {

                            flag = 1;

                            neg = neg2;

                            break;

                        }

                    }

                }

                if (flag == -1)

                    return "0";

                if (flag == 1) {

                    int[] temp = lmax;

                    lmax = lmin;

                    lmin = temp;

                }

                while (j >= 0) {

                    minus(lmax, i, lmin[j]);

                    --i;

                    --j;

                }

                int L = 0;

                for (i = 0; i < lmax.length; ++i) {

                    if (lmax[i] == 0) {

                        ++L;

                    } else {

                        break;

                    }

                }

                StringBuilder sb = new StringBuilder();

                if (neg)

                    sb.append('-');

                for (i = L; i < lmax.length; ++i)

                    sb.append(lmax[i]);

                return sb.toString();

            }

        }

     

        static void add(int[] lmax, int i, int val, int[] carry) {

            if (i == -1) {

                carry[0] = 1;

                return;

            }

            lmax[i] += val;

            if (lmax[i] >= 10) {

                lmax[i] = lmax[i] - 10;

                add(lmax, --i, 1, carry);

            }

        }

     

        static void minus(int[] max, int i, int val) {

            max[i] -= val;

            if (max[i] < 0) {

                max[i] = max[i] + 10;

                minus(max, --i, 1);

            }

        }

     

    }

    HJ58 输入n个整数,输出其中最小的k个

    输入n个整数,输出其中最小的k个

    题目描述

    输入n个整数,输出其中最小的k个。

    本题有多组输入样例,请使用循环读入,比如while(cin>>)等方式处理

    输入描述:

    第一行输入两个整数n和k

    第二行输入一个整数数组

    输出描述:

    输出一个从小到大排序的整数数组

    示例1

    输入

    5 2

    1 3 5 7 2

    输出

    1 2

    import java.io.*;

    import java.util.*;

    public class Main {

        public static void main(String[] args) throws IOException {

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String str = null;

            while ((str = br.readLine()) != null) {

                if (str.equals("")) continue;

                String[] params = str.split(" ");

                int n = Integer.parseInt(params[0]), k = Integer.parseInt(params[1]);

                int[] res = new int[n];

                int start = 0, index = 0;

                if (params.length > 2) start = 2;

                else params = br.readLine().split(" ");

                for (int i = start; i < params.length; i++) {

                    res[index++] = Integer.parseInt(params[i]);

                }

                Arrays.sort(res);

                StringBuilder ans = new StringBuilder();

                for (int i = 0; i < k; i++) ans.append(res[i]).append(" ");

                System.out.println(ans.toString().trim());

            }

        }

    }

    HJ59 找出字符串中第一个只出现一次的字符

    找出字符串中第一个只出现一次的字符(题面已经更新)

    题目描述

    找出字符串中第一个只出现一次的字符

    输入描述:

    输入几个非空字符串

    输出描述:

    输出第一个只出现一次的字符,如果不存在输出-1

    示例1

    输入

    asdfasdfo

    aabb

    输出

    o

    -1

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStreamReader;

    public class Main {

        public static void main(String[] args) throws IOException {

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String input;

            while ((input = br.readLine()) != null) {

                for (int i = 0; i < input.length(); i++) {

                    char c = input.charAt(i);

                    if (input.indexOf(c) == input.lastIndexOf(c)) {

                        System.out.println(c);

                        break;

                    }

                    if (i == input.length() - 1) {

                        System.out.println(-1);

                    }

                }

            }

        }

    }

    HJ60 查找组成一个偶数最接近的两个素数

    查找组成一个偶数最接近的两个素数

    题目描述

    任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。

    本题含有多组样例输入。

    输入描述:

    输入一个偶数

    输出描述:

    输出两个素数

    示例1

    输入

    20

    输出

    7

    13

    import java.io.*;

    import java.util.*;

    public class Main{

        public static void main(String[] args) throws Exception{

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String content ;

    while(null != (content = br.readLine())){

                int num = Integer.parseInt(content);

                for(int i = num/2;i>2;i--){

                    if(check(i) && check(num-i)){

                        System.out.println(i);

                        System.out.println(num-i);

                        break;

                    }

                }

                

            }

        }

        

        public static boolean check(int num){

            for(int i = 2;i*i<=num;i++){

                if(num%i == 0){

                    return false;

                }

            }

            return true;

        }

    }

    HJ61 放苹果

    放苹果

    题目描述

    题目描述

    把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

    数据范围:0<=m<=10,1<=n<=10。

    本题含有多组样例输入。

    输入描述:

    输入两个int整数

    输出描述:

    输出结果,int型

    示例1

    输入

    7 3

    输出

    8

    //把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

    //输入

    //每个用例包含二个整数M和N。0<=m<=10,1<=n<=10。

    //样例输入

    //7 3

    //样例输出

    //8

    /**

    * 计算放苹果方法数目

    * 输入值非法时返回-1

    * 1 <= m,n <= 10

    * @param m 苹果数目

    * @param n 盘子数目数

    * @return 放置方法总数

    *

    */

    //public static int count(int m, int n)

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

    import java.util.*;

    public class Main{

        public static void main(String[] args) throws Exception{

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String str = " ";

            while((str = br.readLine()) != null){

                String[] s = str.split(" ");

                int m = Integer.parseInt(s[0]);

                int n = Integer.parseInt(s[1]);

                System.out.println(count(m,n));

            }

        }

        public static int count(int m,int n){

            if(n == 1 || m == 0)return 1;

            else if(n > m)return count(m,m);

            else return count(m,n - 1) + count(m - n,n);

        }

    }

    HJ62 查找输入整数二进制中1的个数

    查找输入整数二进制中1的个数

    题目描述

    输入一个正整数,计算它在二进制下的1的个数。

    注意多组输入输出!!!!!!

    输入描述:

    输入一个整数

    输出描述:

    计算整数二进制中1的个数

    示例1

    输入

    5

    输出

    2

    说明

    5的二进制表示是101,有2个1

    import java.io.*;

    public class Main {

            public static void main(String[] args) throws Exception{

                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

                String str;

                while((str = br.readLine()) != null){

                    int n = Integer.parseInt(str);

                    String s = Integer.toBinaryString(n);

                    int cnt = 0;

                    for(char c : s.toCharArray())

                        if(c == '1')

                            cnt++;

                    System.out.println(cnt);

                }

            }

    }

    HJ63 DNA序列

    DNA序列

    题目描述

    一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。

    给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列。

    本题含有多组样例输入。

    输入描述:

    输入一个string型基因序列,和int型子串的长度

    输出描述:

    找出GC比例最高的子串,如果有多个输出第一个的子串

    示例1

    输入

    AACTGTGCACGACCTGA

    5

    输出

    GCACG

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

    import java.io.IOException;

    public class Main{

        public static void main(String[] args) throws IOException{

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String str;

            while((str = br.readLine()) != null) {

                int len = Integer.parseInt(br.readLine());

                char[] c = str.toCharArray();

                int max = 0;

                int start = 0;

                for(int i = 0; i < c.length - len; i++) {

                    int count = 0;

                    for(int j = 0; j < len; j++) {

                        if(c[i + j] == 'G' || c[i + j] == 'C')

                            count ++;

                    }

                    if(count > max) {

                        start = i;

                        max = count;

                    }

                }

                StringBuilder builder = new StringBuilder();

                for(int i = start; i < start + len; i++) {

                    builder.append(c[i]);

                }

                System.out.println(builder.toString());

            }

        }

    }

    HJ64 MP3光标位置

    MP3光标位置

    题目描述

    MP3 Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲,光标初始的位置为第1首歌。

     

    现在要实现通过上下键控制光标移动来浏览歌曲列表,控制逻辑如下:

     

    歌曲总数<=4的时候,不需要翻页,只是挪动光标位置。

     

    光标在第一首歌曲上时,按Up键光标挪到最后一首歌曲;光标在最后一首歌曲时,按Down键光标挪到第一首歌曲。

     

    其他情况下用户按Up键,光标挪到上一首歌曲;用户按Down键,光标挪到下一首歌曲。

    2. 歌曲总数大于4的时候(以一共有10首歌为例):

    特殊翻页:屏幕显示的是第一页(即显示第1 – 4首)时,光标在第一首歌曲上,用户按Up键后,屏幕要显示最后一页(即显示第7-10首歌),同时光标放到最后一首歌上。同样的,屏幕显示最后一页时,光标在最后一首歌曲上,用户按Down键,屏幕要显示第一页,光标挪到第一首歌上。

    一般翻页:屏幕显示的不是第一页时,光标在当前屏幕显示的第一首歌曲时,用户按Up键后,屏幕从当前歌曲的上一首开始显示,光标也挪到上一首歌曲。光标当前屏幕的最后一首歌时的Down键处理也类似。

    其他情况,不用翻页,只是挪动光标就行。

    输入描述:

    输入说明:

    1 输入歌曲数量

    2 输入命令 U或者D

    本题含有多组输入数据!

    输出描述:

    输出说明

    1 输出当前列表

    2 输出当前选中歌曲

    示例1

    输入

    10

    UUUU

    输出

    7 8 9 10

    7

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStreamReader;

    public class Main {

    public static void main(String[] args) throws IOException {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    // Scanner sc = new Scanner(System.in);

    String str = null;

    while ((str = br.readLine()) != null) {

    String str2 = br.readLine();

    int num = Integer.parseInt(str);

    char[] array = str2.toCharArray();

    int current = 1;

    int start = 1;

    for (char one : array) {

    if (num <= 4) {

    if(one == 'U') {

    if(current == 1) {

    current = num;

    }else {

    current--;

    }

     

    }

    else if(one == 'D') {

    if(current == num) {

    current = 1;

    }else {

    current++;

    }

     

    }

    }

    if(num > 4) {

    if(one == 'U') {

    if(current == 1) {

    current = num;

    start = num-3;

    }else if(current == start) {

    current--;

    start--;

    }else {

    current--;

    }

    }else if(one == 'D') {

    if(current == num) {

    current = 1;

    start = 1;

    }else if(current == start+3) {

    current++;

    start++;

    }else {

    current++;

    }

    }

    }

    }

    StringBuilder sb = new StringBuilder();

    for(int i=1;i<=4;i++) {

    if(num >=i) {

    sb.append(start + i -1).append(" ");

    }

    }

    System.out.println(sb.toString().trim());

    System.out.println(current);

    }

    }

    }

    HJ65 查找两个字符串a,b中的最长公共子串

    查找两个字符串a,b中的最长公共子串

    题目描述

    查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。

    注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!

    本题含有多组输入数据!

    输入描述:

    输入两个字符串

    输出描述:

    返回重复出现的字符

    示例1

    输入

    abcdefghijklmnop

    abcsafjklmnopqrstuvw

    输出

    jklmnop

    import java.io.*;

    import java.util.*;

    public class Main{

        public static void main(String[] args) throws Exception{

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String str;

            while((str = br.readLine())!=null){

                String ss = br.readLine();

                if(str.length()<ss.length()){

                    System.out.println(res(str,ss));

                }else{

                    System.out.println(res(ss,str));

                }

            }

        }

        public static String res(String s,String c){

            char[] ch1 = s.toCharArray();

            char[] ch2 = c.toCharArray();

            int[][] ins = new int[ch1.length + 1][ch2.length + 1];

            int max = 0;

            int start = 0;

            for (int i = 0; i < ch1.length; i++) {

                for (int j = 0; j < ch2.length; j++) {

                    if(ch1[i]==ch2[j]){

                        ins[i+1][j+1] = ins[i][j]+1;

                        if(ins[i+1][j+1]>max){

                            max = ins[i+1][j+1];

                            start = i-max;

                        }

                    }

                }

            }

            return s.substring(start+1,start+max+1);

        }

    }

    HJ66 配置文件恢复

    配置文件恢复

    题目描述

    有6条配置命令,它们执行的结果分别是:

     

    命   令

    执   行

    reset

    reset what

    reset board

    board fault

    board add

    where to add

    board delete

    no board at all

    reboot backplane

    impossible

    backplane abort

    install first

    he he

    unknown command

    注意:he he不是命令。

    为了简化输入,方便用户,以“最短唯一匹配原则”匹配:

    1、若只输入一字串,则只匹配一个关键字的命令行。例如输入:r,根据该规则,匹配命令reset,执行结果为:reset what;输入:res,根据该规则,匹配命令reset,执行结果为:reset what;

    2、若只输入一字串,但本条命令有两个关键字,则匹配失败。例如输入:reb,可以找到命令reboot backpalne,但是该命令有两个关键词,所有匹配失败,执行结果为:unknown command

    3、若输入两字串,则先匹配第一关键字,如果有匹配但不唯一,继续匹配第二关键字,如果仍不唯一,匹配失败。例如输入:r b,找到匹配命令reset board 和 reboot backplane,执行结果为:unkown command。

    4、若输入两字串,则先匹配第一关键字,如果有匹配但不唯一,继续匹配第二关键字,如果唯一,匹配成功。例如输入:b a,无法确定是命令board add还是backplane abort,匹配失败。

    5、若输入两字串,第一关键字匹配成功,则匹配第二关键字,若无匹配,失败。例如输入:bo a,确定是命令board add,匹配成功。

    6、若匹配失败,打印“unknown command”

    输入描述:

    多行字符串,每行字符串一条命令

    输出描述:

    执行结果,每条命令输出一行

    示例1

    输入

    reset

    reset board

    board add

    board delet

    reboot backplane

    backplane abort

    输出

    reset what

    board fault

    where to add

    no board at all

    impossible

    install first

    import java.io.BufferedReader;

    import java.io.InputStreamReader;

    import java.io.IOException;

    public class Main {

            public static void main(String[] args) throws IOException{

                BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

                String str="";

                StringBuilder sb=new StringBuilder();

                String[] str1={"reset","reset board","board add","board delete","reboot backplane","backplane abort"};

                Out:

                while((str=br.readLine())!=null){

                    String[] str2=str.split(" ");

                    if(str2.length==1){

                        String cmd=str1[0];

                        for(int i=0;i<str2[0].length();i++){

                            if(str2[0].charAt(i)!=cmd.charAt(i)){

                                sb.append("unknown command").append("\n");

                                continue Out;

                            }

                        }

                        sb.append("reset what").append("\n");

                    }else if(str2.length==2){

                        if(str2[0].charAt(0)=='r'){

                            if((str2[0].equals("r")&&str2[1].equals("b"))||(str2[0].equals("re")&&str2[1].equals("b")))

                                sb.append("unknown command").append("\n");

                            else if(str2[0].length()<6 && str2[1].length()<6 && str2[0].equals(str1[1].substring(0,str2[0].length()))&&str2[1].equals(str1[1].substring(6,6+str2[1].length())))

                                sb.append("board fault").append("\n");

                            else if(str2[0].length()<7 && str2[1].length()<10 && str2[0].equals(str1[4].substring(0,str2[0].length()))&&str2[1].equals(str1[4].substring(7,7+str2[1].length())))

                                sb.append("impossible").append("\n");

                            else sb.append("unknown command").append("\n");}

                        else if(str2[0].charAt(0)=='b'){

                            if((str2[0].equals("b")&&str2[1].equals("a")))

                                sb.append("unknown command").append("\n");

                            else if(str2[0].length()<6 && str2[1].length()<4 && str2[0].equals(str1[2].substring(0,str2[0].length()))&&str2[1].equals(str1[2].substring(6,6+str2[1].length())))

                                sb.append("where to add").append("\n");

                            else if(str2[0].length()<6 && str2[1].length()<7 && str2[0].equals(str1[3].substring(0,str2[0].length()))&&str2[1].equals(str1[3].substring(6,6+str2[1].length())))

                                sb.append("no board at all").append("\n");

                            else if(str2[0].length()<10 && str2[1].length()<6 && str2[0].equals(str1[5].substring(0,str2[0].length()))&&str2[1].equals(str1[5].substring(10,10+str2[1].length())))

                                sb.append("install first").append("\n");

                        }else sb.append("unknown command").append("\n");

                    }

                }

                sb.deleteCharAt(sb.length()-1);

                System.out.println(sb.toString());

            }

    }

    HJ67 24点游戏算法

    24点游戏算法

    题目描述

    问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利

    输入:

    4个1-10的数字。[数字允许重复,但每个数字仅允许使用一次,测试用例保证无异常数字。

    输出:

    true or false

    本题含有多组样例输入。

    输入描述:

    输入4个int整数

    输出描述:

    返回能否得到24点,能输出true,不能输出false

    示例1

    输入

    7 2 1 10

    输出

    true

    import java.io.*;

    public class Main {

        public static void main(String[] args) throws Exception {

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String str;

            while((str = br.readLine()) != null) {

                String[] numstrs = str.split(" ");

                int[] nums = new int[4];

                nums[0] = Integer.parseInt(numstrs[0]);

                nums[1] = Integer.parseInt(numstrs[1]);

                nums[2] = Integer.parseInt(numstrs[2]);

                nums[3] = Integer.parseInt(numstrs[3]);

                boolean flag = false;

                for(int i = 0; i < 4; i++) {

                    if(is24(nums, 1 << i, nums[i])) {

                        flag = true;

                        break;

                    }

                }

                System.out.println(flag);

            }

            

        }

        private static boolean is24(int[] nums, int stu, int val) {

            if(val == 24) return true;

            else if (stu == 7) return false;

            for(int i = 0; i < 4; i++) {

                int temp = 1 << i;

                if ((temp & stu) == 0) {

                    temp |= stu;

                    if(is24(nums, temp, val + nums[i])

                       ||is24(nums, temp, val - nums[i])

                       ||is24(nums, temp, val * nums[i])

                       ||(val % nums[i] == 0 && is24(nums, temp, val + nums[i])))

                       return true;

                }

            }

            return false;

        }

    }

    HJ68 成绩排序

    成绩排序

    题目描述

    查找和排序

    题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩

    都按先录入排列在前的规则处理。

    例示:

    jack      70

    peter     96

    Tom       70

    smith     67

    从高到低  成绩

    peter     96

    jack      70

    Tom       70

    smith     67

    从低到高

    smith     67

    jack      70

    Tom       70

    peter     96

    注:0代表从高到低,1代表从低到高

    本题含有多组输入数据!

    输入描述:

    输入多行,先输入要排序的人的个数,然后分别输入他们的名字和成绩,以一个空格隔开

    输出描述:

    按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开

    示例1

    输入

    3

    0

    fang 90

    yang 50

    ning 70

    输出

    fang 90

    ning 70

    yang 50

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStreamReader;

    /*

    * 查找和排序

    题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩

    都按先录入排列在前的规则处理。

    例示:

    jack      70

    peter     96

    Tom       70

    smith     67

    从高到低  成绩

    peter     96

    jack      70

    Tom       70

    smith     67

    从低到高

    smith     67

    jack      70

    Tom       70

    peter     96

    注:0代表从高到低,1代表从低到高

    */

    public class Main {

      public static void main(String[] args) throws IOException{

      BufferedReader br= new BufferedReader(new InputStreamReader(System.in));

      String str="";

      while((str=br.readLine())!=null){

      int n=Integer.parseInt(str.trim());

     

      int bool=Integer.parseInt(br.readLine().trim());

      String[] name =new String[n];

      int[] score=new int[n];

      for(int i=0;i<n;i++){

      str=br.readLine().trim();

     String[] temp= str.split(" ");

      name[i]=temp[0];

      score[i]=Integer.parseInt(temp[1]);

      }

      if(bool==0){  // 由高到低

      for(int i=0;i<n;i++){

     

      for(int j=0;j<n-1-i;j++){

      if(score[j+1]>score[j]){

     String na=name[j];

      name[j]=name[j+1];

      name[j+1]=na;

      int t=score[j];

      score[j]=score[j+1];

      score[j+1]=t;

      }

       

      }

      

      }

      }else{  // 由低到高

      for(int i=0;i<n;i++){

      

      for(int j=0;j<n-1-i;j++){

      if(score[j+1]<score[j]){

     String na=name[j];

      name[j]=name[j+1];

      name[j+1]=na;

      int t=score[j];

      score[j]=score[j+1];

      score[j+1]=t;

      }

      }

      

       

      }

     

      

     }

      StringBuilder sb = new StringBuilder();

    for(int i=0;i<n;i++) {

    sb.append(name[i] + " ");

    sb.append(score[i]);

    // if(i!=(n-1)) {

    // sb.append("\n");

    // }

                        sb.append("\n");

    }

                  sb.deleteCharAt(sb.length()-1);

    System.out.println(sb.toString());

      }

    }

     

    }

    HJ69 矩阵乘法

    矩阵乘法

    题目描述

    如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的

     

    矩阵的大小不超过100*100

    输入描述:

    输入包含多组数据,每组数据包含:

    第一行包含一个正整数x,代表第一个矩阵的行数

    第二行包含一个正整数y,代表第一个矩阵的列数和第二个矩阵的行数

    第三行包含一个正整数z,代表第二个矩阵的列数

    之后x行,每行y个整数,代表第一个矩阵的值

    之后y行,每行z个整数,代表第二个矩阵的值

    输出描述:

    对于每组输入数据,输出x行,每行z个整数,代表两个矩阵相乘的结果

    示例1

    输入

    2

    3

    2

    1 2 3

    3 2 1

    1 2

    2 1

    3 3

    输出

    14 13

    10 11

    import java.io.*;

    public class Main {

        public static void main(String[] args) throws IOException {

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String str = null;

            while ((str = br.readLine()) != null) {

                if (str.equals("")) continue;

                int x = Integer.parseInt(str);

                int y = Integer.parseInt(br.readLine());

                int z = Integer.parseInt(br.readLine());

                int[][] matrix1 = new int[x][y];

                int[][] matrix2 = new int[y][z];

                for (int i = 0; i < x; i++) {

                    String[] params = br.readLine().split(" ");

                    for (int j = 0; j < y; j++) {

                        matrix1[i][j] = Integer.parseInt(params[j]);

                    }

                }

                for (int i = 0; i < y; i++) {

                    String[] params = br.readLine().split(" ");

                    for (int j = 0; j < z; j++) {

                        matrix2[i][j] = Integer.parseInt(params[j]);

                    }

                }

                StringBuilder ans = new StringBuilder();

                for (int i = 0; i < x; i++) {

                    for (int j = 0; j < z; j++) {

                        int temp = 0;

                        for (int k = 0; k < y; k++)  {

                            temp += matrix1[i][k] * matrix2[k][j];

                        }

                        ans.append(temp).append(" ");

                    }

                    ans.deleteCharAt(ans.length()-1).append("\n");

                }

                System.out.print(ans.toString());

            }

        }

    }

    HJ70 矩阵乘法计算量估算

    矩阵乘法计算量估算

    题目描述

    矩阵乘法的运算量与矩阵乘法的顺序强相关。

    例如:

    A是一个50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵

    计算A*B*C有两种顺序:((AB)C)或者(A(BC)),前者需要计算15000次乘法,后者只需要3500次。

    编写程序计算不同的计算顺序需要进行的乘法次数。

    本题含有多组样例输入!

    输入描述:

    输入多行,先输入要计算乘法的矩阵个数n,每个矩阵的行数,列数,总共2n的数,最后输入要计算的法则

    计算的法则为一个字符串,仅由左右括号和大写字母('A'~'Z')组成,保证括号是匹配的且输入合法!

    输出描述:

    输出需要进行的乘法次数

    示例1

    输入

    3

    50 10

    10 20

    20 5

    (A(BC))

    输出

    3500

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStreamReader;

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Stack;

     

    public class Main {

     

        public static void main(String[] args) throws IOException {

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            // Scanner sc = new Scanner(System.in);

            String str = null;

            while ((str = br.readLine()) != null) {

                int num = Integer.parseInt(str);

                int [][] arr = new int[num][2];

                 

                for(int i = 0;i<num;i++) {

                    String [] sa = br.readLine().split(" ");

                    arr[i][0] = Integer.parseInt(sa[0]);

                    arr[i][1] = Integer.parseInt(sa[1]);

                }

                 

                int n = arr.length -1;

                char [] ca = br.readLine(). toCharArray();

                Stack<Integer> stack = new Stack<>();

                int sum = 0;

                for(int i = ca.length - 1;i>=0;i--) {

                    char one = ca[i];

                    if(one == ')') {

                        stack.push(-1);

                    }else if(one == '(') {

                        int n1 = stack.pop();

                        int n2 = stack.pop();

                        sum+= arr[n1][0]*arr[n2][0]*arr[n2][1];

                        arr[n1][1] = arr[n2][1];

                        stack.pop();

                        stack.push(n1);

                    }else {

                        stack.push(n);

                        n--;

                    }

                }

                System.out.println(sum);

            }

        }

     

    }

    HJ71 字符串通配符

    字符串通配符

    题目描述

    问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。

    要求:

    实现如下2个通配符:

    *:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同)

    ?:匹配1个字符

    输入:

    通配符表达式;

    一组字符串。

    输出:

    返回匹配的结果,正确输出true,错误输出false

    本题含有多组样例输入!

    输入描述:

    先输入一个带有通配符的字符串,再输入一个需要匹配的字符串

    输出描述:

    返回匹配的结果,正确输出true,错误输出false

    示例1

    输入

    te?t*.*

    txt12.xls

    输出

    false

    import java.io.*;

    public class Main{

    public static void main(String[] args) throws Exception{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

            String regx ;

            while(null != (regx = br.readLine())){

    String content = br.readLine();

    System.out.println(match(content.toCharArray(),0,regx.toCharArray(),0));

    }

    }

     

    public static boolean match(char[] content,int offsetContent,char[] regx,int offsetRegx){

    while(offsetContent < content.length && offsetRegx < regx.length){

    if('*' == regx[offsetRegx]){

    if(offsetRegx == regx.length-1){

    return true;

    }else if(isMatch(content[offsetContent],regx[offsetRegx+1]) && match(content,offsetContent,regx,offsetRegx+1)){

    return true;

    }else{

    offsetContent++;

    }

     

    }else if('?' == regx[offsetRegx] || content[offsetContent] == regx[offsetRegx]){

    offsetContent++;

    offsetRegx++;

    }else{

    return false;

    }

     

     

    }

    return (offsetContent==content.length)&&(offsetRegx==regx.length);

    }

     

    public static boolean isMatch(char contentChar,char regxChar){

    return '*'==regxChar || '?'==regxChar || contentChar == regxChar;

    }

    }

    HJ72 百钱买百鸡问题

    百钱买百鸡问题

    题目描述

    公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

    详细描述:

    接口说明

    原型:

    int GetResult(vector &list)

    输入参数:

            无

    输出参数(指针指向的内存区域保证有效):

        list  鸡翁、鸡母、鸡雏组合的列表

    返回值:

         -1 失败     

         0 成功

    输入描述:

    输入任何一个整数,即可运行程序。

    输出描述:

     

    示例1

    输入

    1

    输出

    0 25 75

    4 18 78

    8 11 81

    12 4 84

    public class Main{

        public static void main(String[] args) {

            for (int x=0;x<100;x++){

                for (int y=0;y<100;y++){

                        if (14*x+8*y==200){

                            System.out.println(x+" "+y+" "+(100-x-y));

                    }

                }

            }

        }

    }

    展开全文
  • 一、华为Mate30 Pro 5G华为Mate30 Pro 5G是华为真正的顶级旗舰,首发麒麟990 5G SoC,上市已经超过半年,不过这款手机到现在仍然值得选择。华为Mate30 Pro 5G与苹果的iPhone一样支持3D人脸识别和人脸解锁,也是唯...
  • 本文件为华为技术有限公司c语言编程规范,可作为日常学习及面试等资料参考使用。注意:仅供参考!!!
  • 【JAVA】【华为校园招聘笔试-软件】2020-09-09

    万次阅读 多人点赞 2020-09-09 21:09:10
    华为三道题,100+200+300,100及格,大家做对第一题就好了,祝大家全都有心仪的offer,不要慌,不要焦虑 一、完美排列——玩具(注意:题目中说:如果不是完美排列,则输出0,没注意这种情况的应该A0.6或0.7) 代码...
  • 吐槽一下HUAWEI,你为什么要这么的秀 高高兴兴的写了个绕Y轴旋转的动画,运行一下完美展示 ObjectAnimator animator = ObjectAnimator.ofFloat(imageView, "rotationY", 0, 360f); animator.setDuration(3_000); ...
  • 华为荣耀首款双模 5G 手机来了!

    千次阅读 2019-11-26 19:26:21
    对此,华为认为,5G 时代,5G 双模手机是必然趋势,华为从一开始便选择了走 SA/NSA 双模 5G 的道路。其所带来的成果也是相当地丰硕,麒麟 990 搭配巴龙 5000 的旗舰 5G 方案比行业早半年,SoC 芯片亦相对早于其他...
  • 华为机试题目笔记

    千次阅读 2020-03-16 20:42:43
    华为机试题目笔记服务器广播航班预定统计判断一组数连续九宫格输入抢票系统报数游戏字符串分割单词压缩编码分子弹/分发糖果打印任务排序集五福双列表元素分配 服务器广播 题目:服务器连接方式包括直接相连,间接...
  • 记录华为P40Pro+系列相机参数总结

    万次阅读 2020-04-29 19:29:45
    华为P40系列后置相机,下面是网络上可以明确查到的参数。 手机 相机 类别 像素 等效 焦距 Sensor尺寸 光圈 Sensor ...
  • 咨询常用分析模型 定量战略计划矩阵(Quantitative Strategic Planning Matrix)
  • 华为面试题

    2017-04-08 19:28:22
    package Main;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String line=sc.nextLine(); String[]
  • 2019华为软件精英挑战赛经验总结

    千次阅读 2019-04-08 09:34:59
    ——成绩什么的全靠缘分了,结果跑出来的成绩连个复赛都进不了 伤心话不多说,直接上正文 一、题目介绍 具体题目要求可以上比赛官网下载:华为软件精英挑战赛官网 以下是初赛题目介绍: 背景信息 l 道路交通是城市的...
  • 华为Python机试

    千次阅读 2019-04-17 18:10:33
    1. 汽水瓶 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,...
  • Matrix

    2013-07-11 18:49:00
    Problem G: Matrix Time Limit:2 Sec Memory Limit:128 MB Submit:80 Solved:11 Description To efficient calculate the multiplication of a sparse matrix is very useful in in...
  • 创宇蜜罐着力打造威胁处置便捷的蜜罐产品,采用欺骗防御技术紧贴客户网络安全防御场景,结合The Engage Matrix、Cyber Kill Chain模型,在真实攻防对抗中充分发挥其独有优势,打造“伪装诱捕-感知告警-反制溯源-处置...
  • 华为机试1

    2020-06-04 23:11:52
    题目描述 计算字符串最后一个单词的长度,单词以空格隔开。 输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。 示例1 输入 hello world ... String[] res.
  • 我们用华为解读的《软件绿色联盟应用体验标准3.0》原话来解释:应用界面的刷新帧率,尤其是滑动时,如果帧率较低,会带来卡顿的感觉,所以保持一个相对较高的帧率会带来更流畅的体验。还有刷新频率越低,图像闪烁和...
  • 华为机试2020 0325

    2020-03-25 21:08:11
    华为笔试题(2020年3月25) 第一道 给定两个ip地址和一个子网掩码,如果两个ip地址跟子网掩码二进制按位与之后的结果相同,则认为两个ip地址属于同一个网段。 例如192.168.1.1(11000000 10101000 00000001 00000001...
  • class Solution { public: /** * 最大正方形 * @param matrix char字符型vector> * @return int整型 */ int solve(vector<vector<char> >& matrix) { // write code here if(matrix.size()==0||matrix[0].size()==0...
  • 华为诺亚方舟实验室实习面试

    千次阅读 2020-12-27 19:45:24
    '__main__': envelopes = [[5,4],[6,4],[6,7],[2,3],[99,100]] #input the matrix of envelopes solution = Solution() res = solution.maxEnvelopes(envelopes) print("The maximum envelope nesting layer is %d" ...
  • 华为iLearning AI数学基础 课程 笔记 课程链接AI数学基础 一. 线性代数 AI的核心,通过矩阵表示法实现深度学习方法,非结构化数据–>矩阵(Matrix)&向量(Vector) 张量(Tensor):TensorFlow,Pytorch等深度学习...
  • [华为编程大赛1.doc

    2021-05-20 17:32:10
    [华为编程大赛12011年华为杯校园编程大赛A卷类别:软件C语言编程题(共3题,第一题20分,第二题30分,第三题50分,共100分。请上机编写程序,按题目要求提交文件。?[详见考试说明]本试题采用自动测试用例进行评分,...
  • 性能方面,荣耀V30 pro归功于出色的Matrix Camera矩阵式技术,加上华为自研RYYB色彩阵列,荣耀V30 pro在拍照方面实力突出,未来也将支持升级鸿蒙2.0系统! 2、华为mate30 5G 这款手机搭载了麒麟990 5G处理器,集成式...
  • 74. Search a 2D Matrix

    2019-01-03 23:00:00
    一个整数矩阵,同行之中,一次递增,不同行中后面的行的第一数大于前面行的最后一个数,问一个数字是否存在 ... def searchMatrix(self, matrix, target): """ :type matrix: List[List[int]] :typ...
  • 先创建一个矩阵 m=int(input()) n=int(input()) matrix=[] for i in range(0,m): matrix1=[] for j in range(0,n): matrix1.append(10*i+j) matrix.append(matrix1) print(matrix) #再算出顺时针的的列表 result=...
  • Scan Kit 华为统一扫码服务的使用介绍 简介 华为统一扫码服务(Scan Kit)提供便捷的条形码和二维码扫描、解析、生成能力,帮助您快速构建应用内的扫码功能。 . 优点 Scan Kit可以实现远距离码或小型码的检测和...
  • 用户可以使用标准的Matrix接口实现业务引擎,对外释放昇腾AI加速能力。 从卷积神经网络中的矩阵乘法(GEMM)说起 说起AI业务,就不得不提最经典的AlexNet,AlexNet模型于2012年提出,其被认为是计算机视觉领域最...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,360
精华内容 944
关键字:

华为matrix