Diagnosis techniques are important for memory yield improvement. This paper presents an efficient diagnosis scheme for RAMs. The diagnosis scheme is composed of three March-based algorithms. A March-15N algorithm is used for locating and partially diagnosing faults of bit-oriented or word-oriented memories, where N represents the address number. Then a 3N March-like algorithm is used for locating the aggressor words (bits) of coupling faults in word-oriented (bit-oriented) memories. It also can distinguish the faults which cannot be identified by the March-15N algorithm. Thus the proposed diagnosis scheme can achieve full diagnosis and aggressor location with (15N + 3mN) Read/Write operations for a RAM with m CFs. Subsequently, an adaptive March-like algorithm is also proposed to locate the aggressor bit in the aggressor word with 4log2B Read/Write operations, where B is the word width. Analysis results show that the proposed diagnosis scheme has higher diagnostic resolution and lower time complexity than other known fault location and fault diagnosis approaches.