1. A method of erasing or resetting an array of non-volatile memory cells on an integrated circuit where each of such cells in the array is adapted to store data through injection of hot carriers into a floating gate, the method comprising: a) for each program cycle in which said array is configured with a new data pattern: i. providing an original target highest threshold voltage for programming the cells in said program cycle, and ii. programming cells in said array selectively to store said new data pattern during said program cycle through injected electrons; and b) performing a reset of the array prior to programming said cells in said array in a subsequent program cycle, further injecting electrons to all of the memory cells, such that the threshold voltage of every cell in the array is substantially same as the original highest threshold voltage used in a prior program cycle; wherein said cells in said array are operated as one-time programmable (OTP) and/or multi-time programmable (MTP) cells.