鲁棒性

剑指offer3.4-代码的鲁棒性

限于喜欢 提交于 2020-01-23 00:22:14
题目 输入一个链表,输出该链表中倒数第k个结点。 思路 1.首先想到的是走到链表的尾端,再由尾端回溯k步。可是链表的节点定义看出这是单向链表,结点只有从前往后的指针,因此不能这样走。 2.只能从头节点开始遍历链表。那么我们可以先获取链表的结点数,就可以计算从前往后是需要走多少步了。但是这样需要遍历两次链表 3.为了实现只遍历一次链表,我们还是像之前翻转数组一样,设立两个指针。第一个指针从链表的头指针开始遍历向前走k-1,第二个指针始终指向头结点。当第一个指针指向k个结点的时候,两个指针同时向前遍历,这样确保两个指针距离为k。那么当第一个指针指向末尾结点时,第二个指针指向的就是倒数第k个结点。 4.并且需要注意潜在崩溃的风险。当输入的head为空指针时,代码会试图访问空指针的内存空间;输入的链表结点数小于k,for循环中会在链表上向前走k-1步,同样会造成空指针;当k是unsigned int型时,输入的参数k为0,此时for循环的k得到的不是-1,而是0xFFFFFFFF(4294967295),执行次数会非常非常大,造成程序崩溃。 解法 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution {

关于鲁棒性

孤街浪徒 提交于 2019-12-02 08:10:06
鲁棒是Robust的音译,也就是健壮和强壮的意思。它也是在异常和危险情况下系统生存的能力。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓“鲁棒性”,也是指控制系统在一定(结构,大小)的参数摄动下,维持其它某些性能的特性。根据对性能的不同定义,可分为稳定鲁棒性和性能鲁棒性。以闭环系统的鲁棒性作为目标设计得到的固定控制器称为鲁棒控制器。 在谈到鲁棒性时,必须要求有一个控制器,有一个对象集合和某些系统性能。 对控制系统来说,两个重要的鲁棒概念是: 稳定鲁棒性:一个控制器如果对集合P中的每一个对象都能保证系统稳定则是鲁棒稳定的。 品质鲁棒性:一个控制器如果对集合P中的每一个对象都能保证系统稳定和一种特定品质则认为是品质鲁棒的。 来源: https://blog.csdn.net/sinat_26809255/article/details/102737572

Java鲁棒性(健壮性)

前提是你 提交于 2019-11-26 04:30:39
鲁棒性(Robust,即健壮性) Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生 的错误。通过集成的面向对象的例外处理机制,在编译时,Java揭示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外, Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。 感觉B选项虽然描述也对,但是,不应该把它归结于鲁棒性,B选项主要是体现Java的由于虚拟机,实现了一次编译,到处运行,跨平台性的特点。因此,我选B。 下列不属于java语言鲁棒性特点的是 A.java能检查程序在编译和运行时的错误 B.java能运行虚拟机实现跨平台 C.java自己操纵内存减少了内存出错的可能性 D.java还实现了真数组,避免了覆盖数据的可能 正确答案: B 来源: https://www.cnblogs.com/xhlwjy/p/11316073.html